2
これを実装する方法?プロパティが変更されたときにRebuild/Angular2コンポーネントを再レンダリングします
私のサブコンポーネント
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チームは考えなければならない。この
はい。見つけた。これは簡単な例であるため、これを達成することができます。 –
プロパティに双方向バインディングオプションはありますか? –
双方向バインディングの場合、 '@ Output'を接頭辞:Changeという名前で追加する必要があります。たとえば、次のようになります。 '@Output()myAttrChange:EventEmitter = new EventEmitter();' 'emit'メソッドを使ってイベントをトリガする必要があります。これにより、次の構文を使用できます: '[(myAttr)] =" myAttr "'。 –