Я перехожу из angular 1.x в 2.x, но мои мозги все еще думают в angular 1.x, так жаль глупых вопросов.
Мне нужно принять некоторые меры, если изменится один из моих свойств объекта . Я нашел решение, но я думаю, что должно быть лучшее решение
export class MyApp {
router: Router;
location: Location;
fixed: boolean = true;
private set isFixed(value:boolean) {
this.fixed = value;
//TODO: look here
console.log('isFixed changed', value);
}
private get isFixed():boolean {
return this.fixed;
}
constructor(router: Router, location: Location) {
this.router = router;
this.location = location;
}
}
Посмотрите на строку console.log('isFixed changed', value);
Это то, что мне нужно, и это работает. Но я сделал это, объявив getter
и setter
, но разве нет лучшего решения для просмотра переменных? Как и в angular 1.x было $scope.$watch
?
Я думаю, что мой код компонента должен выглядеть как
export class MyApp {
router: Router;
location: Location;
isFixed: boolean = true;
//TODO: $watch for isFixed change {
console.log('isFixed changed', value);
// }
constructor(router: Router, location: Location) {
this.router = router;
this.location = location;
}
}