我有一个声明为public的数组:
[X-1]
存储用户名的AddUserComponent中的。
我需要在另一个组件AddTopicComponent中使用此数组,以将用户的名称显示为下拉列表。
如何在AddTopicComponent中使用此数组值?这两个组件不是父子组件。
答案 0 :(得分:0)
您可以使用@Input
将容器组件中的数据共享到内部组件。请查看此说明:https://angular.io/guide/attribute-directives#pass-values-into-the-directive-with-an-input-data-binding
如果组件之间的关系不是父子关系,则可以使用以下任何一种方法:
答案 1 :(得分:0)
下面的示例包含子绑定父级和子级绑定父级。
父组件
import { Component, Output,EventEmitter } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
//passing values from parent to child
master : String="send from parent";
//Getting value from child
childToParent(name){
this.master=name;
}
}
父模板
<div>
<span>Master to Child </span><input type="textbox" [(ngModel)]='master'>
</div>
<app-child [childToMaster]=master (childToParent)="childToParent($event)">
</app-child>
包含模板的子组件
import { Component, Input, Output,EventEmitter } from '@angular/core';
@Component({
selector: 'app-child',
template: `
<input type="textbox" [(ngModel)]='masterName'>
<button (click)="sendToParent(masterName)" >sendToParent</button>
<div>{{masterName}}</div>
`
})
export class AppChildComponent {
//getting value from parent to child
@Input('childToMaster') masterName: string;
@Output() childToParent = new EventEmitter<String>();
sendToParent(name){
//alert("hello");
this.childToParent.emit(name);
}
}