我使用 Angular2 搜索组件之间的通信,我尝试在此模式下但
不起作用模板变体页面.组件.html内容
<button (click)="changetext()">Change</button>
<child></child>
@Component({
selector: 'menu-left',
templateUrl: './app/pages/variantpages.component.html'
})
export class AppComponent{
child = new ChildComponent();
changetext(){ this.child.changetext2()}
}
@Component({
selector: 'child',
template: `<p>page of {{ pageCount }}</p>`
})
export class ChildComponent{
@Input() photo:string = "ciao ciao";
@Output() valueChange = new EventEmitter();
pageCount:number;
constructor(){ this.pageCount = 0; }
changetext2(){
this.pageCount++;
this.valueChange.emit(this.pageCount);
console.log(this.pageCount);
}
}
所以控制台日志显示增量号,但页面计数保持 0
谢谢
好的,
我用 EventEmitter 解决了这个问题,但这只适用于父级和子级,现在我的问题就不同了,如果我有两个不同的组件,并且我想用组件 A 中的一个按钮(单击(更改组件 B 中的字符串,我调用此方法 setName
组件 A
constructor(private appComponent: AppComponent ){ }
setName(newName: string) {
this.appComponent.name = newName;
console.log(this.name);
}
构成部分B
@Input() name: string = "Angular3"
控制台显示新字符串,但名称不会更改