如何在Angular 2中订阅变量?

时间:2017-08-29 15:54:28

标签: angular

我在组件中有一个变量被声明为:

public filter: Filter = {};

在模板中,我将这个对象绑定为:

<input [ngModel]="filter.name" value=""/>
<input [ngModel]="filter.secondname" value=""/>

如何监听更改此变量(对象)filter

我的意思是这样的:

this.filter.subscribe().then(changes => { // Call method here })

PS: 我不想为每个输入元素使用事件ngChange=""

2 个答案:

答案 0 :(得分:2)

如果您想订阅它,那么您必须使它成为可以订阅的可观察对象。即

filter: Observable<Filter>;

然后,如果您从服务中检索数据,而不是订阅该服务,只需将其保存到变量即可。即:

filter = this.someService.getFilter();

或者,如果您没有使用服务来检索Filter数据,则可以使用所需的值创建一个observable:this.filter = Observable.of(myFilter);

然后,您就可以在任何需要的地方订阅this.filterthis.filter.subscribe(data => ...)

答案 1 :(得分:1)