【发布时间】:2017-08-06 11:59:56
【问题描述】:
我有两个组件 HomePageComponent 和 StudentResultsComponent。我在 HomePageComponent 中有一个输入,当我输入时,我希望值在我的 StudentResultsComponent 输入中。
我想为输入创建一个单独的组件并在两个组件中调用它们,但是当我开始输入 HomePageComponent 时,我的 StudentsResultsComponent 中的值没有更新。这是我的代码:
Career-Search-Component.html
<input
#input
type ="text"
id ="searchInput"
class ="input-student-search validate filter-input"
placeholder ="Search by a career (Software Engineer,Web Developer,Geologist, Geogropher etc.)"
[(ngModel)] ="query"
>
Career-Search.component.ts
import {Component,OnInit,Input,EventEmitter} from '@angular/core';
@Component({
selector: 'career-search',
templateUrl: 'career-search.component.html'
})
export class CareerSearchComponent implements OnInit {
@Input() public query: string;
constructor() {}
ngOnInit() {}
}
HomePageComponent.component.html
<career-search></career-search>
<button class="submit" [routerLink]="['/students']">Search</button>
Students-result.component.html
<career-search></career-search>
我需要从主页组件传递数据的原因是因为我可以使用数据来查询它并根据从其他组件传递的值显示结果。
请帮忙。
谢谢
【问题讨论】:
-
那么这个职业搜索组件是什么?而且您没有显示任何模板..您在您的主组件中键入,也没有在您希望获得输入的学生结果组件中显示模板?以及这两个组件之间的关系是什么?相同级别的组件,或父子或什么? :)
-
对不起,我误解了你。所以基本上我想要的是获取在
HomePageComponent中输入的输入值,然后使用 ngModel @AJT_82 将其传递给另一个名为StudentResultsComponent的组件内的输入 -
Ooookay...但是在 HomePageComponent 中键入的输入 的代码在哪里?模板(和 ts 代码)看起来如何?以及这些组件之间的关系是什么?这也是重要的信息。如果他们是父母和孩子,你可以使用
Input()如果他们不是父母和孩子,你需要使用共享服务:) -
这是一个阅读组件如何相互通信的好页面angular.io/docs/ts/latest/cookbook/component-communication.html
-
哦,对不起。 HomePage 的 ts 中没有什么重要的东西可以展示。它们之间的关系只是两个不同的组成部分。他们不是孩子或什么不是。 @AJT_82
标签: angular typescript data-binding angular2-components angular2-inputs