【发布时间】:2017-09-13 22:53:28
【问题描述】:
我正在开发一个 Angular 4 应用程序。我有一个搜索组件,用户在其中输入一个字符串。每当用户输入一个值并提交它时,我都会将该值从SearchComponent 发送到DisplayComponent。
在 SearchComponent 中发射值
@Output() userInput: EventEmitter<string> = new EventEmitter<string>();
onFormSubmit() {
this.userInput.emit(this.searchForm.value.SearchInputValue);
}
DisplayComponent HTML 看起来像
<app-search (userInput)="valueFromSearch"></app-search>
<div class="some-other-html></div>
DisplayComponent TS 文件的样子
valueFromSearch: string;
constructor(private someService: SomeService) {}
ngOnInit() {
this.someService.getSomeData(valueFromSearch)
.subscribe((data) => {console.log("Success! data is ",data)},
(error) => {console.log("Something went wrong", error)})
}
但是,当valueFromSearch 发生变化时,如何运行someService 函数?我应该使用 BehaviorSubject 继续监听 valueFromSearch 的变化吗?
是否有任何函数可以知道值已更改?请帮我解决这个问题。
【问题讨论】:
-
(更改)输入方法
-
@porgo 正在发出来自搜索输入的值,但我如何知道 DisplayComponent 中更改的值?
标签: javascript angular typescript observable