这似乎不起作用,但没有错误:
@Component({
selector: 'geofinder',
template: '<input type="text" class="form-control" [(ngModel)]="cityName" />'
})
export class GeoFinderComponent implements OnInit {
cityName;
ngOnInit() {
let cityNameChange = Observable.from(this.cityName);
cityNameChange.subscribe((data) => console.log(data));
}
}
我在这里想要实现的是将一个Observable附加到变量,该变量在其值发生变化时触发。如果我可以将Observable绑定到输入字段的keyup事件,我也会很高兴,但它也拒绝工作。
答案 0 :(得分:3)
使用setter只需在那里添加处理
_cityName;
get cityName() {
return this._cityName;
}
set cityName(name) {
// do your stuff here
}
拆分[(ngModel)]
,以便您可以使用(ngModelChange)
挂钩调用回调
'<input [ngModel]="cityName" (ngModelChange)="onChange($event)"/>'
cityName;
onChange(newCity) {
// do your stuff here
}
如果需要Observable,请使用Reactive Forms。您可以访问valueChanges
或Observable
FormControl
(FormGroup
)
formControl = new FormControl()
formControl.valueChanges().debounceTime(..).filter(..)
如果您之前从未使用过反应形式,则应阅读我上面链接的指南。