如何实现这个功能?
我的子组件
import {Component,Input,ngOnInit} from 'angular2/core';
@Component({
selector: 'my-component',
template: `
<div>In child component - myAttr = {{ myAttr1 }}</div>
`
})
export class MyComponent {
@Input() myAttr: number;
myAttr1:number;
ngOnInit()
{
this.myAttr1=this.myAttr*10;
}
}
主要组件
import {Component} from 'angular2/core';
import {MyComponent} from './sub.component';
@Component({
selector: 'my-app',
template: `
<my-component
[(myAttr)]="myAttr"
></my-component>
<button (click)="onClick()">Click</button>
`,
directives: [MyComponent]
})
export class AppComponent {
myAttr: number = 1;
onClick() {
console.log('Click in the parent component');
this.myAttr += 1;
}
}
我需要在每次点击时更新值。应该有一种直接的方法,否则Angular2团队应该考虑这个问题。
Change
的名称的@Output
。例如:@Output() myAttrChange:EventEmitter<number> = new EventEmitter();
。您需要使用其emit
方法触发事件。这使您可以使用以下语法:[(myAttr)]="myAttr"
。 - Thierry Templier