作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个包含一些输入的组件,我希望在它发生变化时得到通知。我目前通过实现 ngOnChanges
来让它工作并找出更改了哪个输入。但是,我更愿意将我的输入声明设置为 @Input('select-values') selectValues:Observable<any>
.这将使我能够以更简洁的方式订阅发生的任何新变化。
ngOnInit() {
this.selectValues.subscribe(() => console.log('yay!'));
}
问题是我收到异常 TypeError: this.selectValues.subscribe is not a function
.
刚刚发现这也有效—— Component Interaction. Intercept input property changes with a setter .
最佳答案
您可以将它们包装在一个表单中并监听变化
this.myForm = fb.group({
'sku': ['', Validators.required]
});
this.sku = this.myForm.controls['sku'];
this.sku.valueChanges.subscribe(
(value: string) => {
console.log('sku changed to: ', value);
}
);
this.myForm.valueChanges.subscribe(
(value: string) => {
console.log('form changed to: ', value);
}
);
http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/
或
@Component({
...,
template: '<input (change)="onChange($event.target.value)">'
})
class MyComponent {
this.inputChange =new Subject();
onChange(e) {
this.inputChange.next(e);
}
}
关于angular - 如何使输入可观察?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500047/
我是一名优秀的程序员,十分优秀!