変更検出戦略が onPush に設定されている場合、コンポーネントの属性が変更された場合、コンポーネントのみを再レンダリングする必要があります。
コード例を次に示します。
var SampleComponent1 = ng.core.Component({
selector: "sampleone",
template: "{{value}}",
viewProviders: [ng.core.ChangeDetectorRef],
changeDetection: ng.core.ChangeDetectionStrategy.onPush
}).Class({
constructor: [ng.core.ChangeDetectorRef, function(cd){
this.cd = cd;
}],
ngOnInit: function(){
this.value = 1;
setInterval(function(){
this.value++;
}.bind(this), 2000)
}
})
var App = ng.core.Component({
selector: "app",
directives: [SampleComponent1],
template: "<sampleone ></sampleone>"
}).Class({
constructor: function(){
}
})
ここで、属性が変わらなくてもテンプレートはレンダリングされますか? これはバグですか、それとも onPush を誤解していますか?