[英]angular 4 - watch property of a variable for change
我想观看 json 的嵌套属性。 每当此嵌套属性更改时,调用 fn()。
export class HeaderComponent {
user: any;
constructor(){
this.user = {
options: [
{ name: 'Jenny Hess', img: 'assets/img/avatar/small/jenny.jpg' },
{ name: 'Elliot Fu', img: 'assets/img/avatar/small/elliot.jpg' },
{ name: 'Stevie Feliciano', img: 'assets/img/avatar/small/stevie.jpg' }
],
selected: { name: 'Jenny Hess', img: 'assets/img/avatar/small/jenny.jpg' }
}
}
Fn 更改值
public changeUser(item) {
this.user.selected = item;
/*Some Code here*/
}
public customLogin(user) {
/*Some Code here*/
this.user.selected = user;
/*Some Code here*/
}
每当this.user.selected
的值发生变化时,就会调用一个函数。 我rxjx
使用rxjx
。
有什么建议吗??
你可以这样做:
export class HeaderComponent implements OnDestroy {
user: any;
userSelectSubject: BehaviorSubject<{name: string, img: string}>;
private userSelectSubscription: Subscription;
constructor(){
this.user = {
options: [
{ name: 'Jenny Hess', img: 'assets/img/avatar/small/jenny.jpg' },
{ name: 'Elliot Fu', img: 'assets/img/avatar/small/elliot.jpg' },
{ name: 'Stevie Feliciano', img: 'assets/img/avatar/small/stevie.jpg' }
]
}
this.userSelectSubject = new BehaviorSubject<{name: string, img: string}>({ name: 'Jenny Hess', img: 'assets/img/avatar/small/jenny.jpg' });
this.userSelectSubscription = this.userSelectSubject.subscribe((newSelectedUser) => {
this.user.selected = newSelectedUser;
});
}
ngOnDestroy() {
this.userSelectSubscription.unsubscribe();
}
}
然后你只需要调用this.userSelectSubject.next({...})
将新选择的用户作为参数传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.