変更検出が変更されました。
beta.16 より前では、ビューに が含まれて{{myArray}}
いる場合、配列参照を変更しないとバインディングは更新されません。たとえば、push()
配列に項目を追加すると、ビューは更新されず、新しい項目が表示されません。説明は、配列参照が変更されていないため、Angular 変更検出はバインディングを再評価しないということです。このbeta.15 plunkerは、この動作を示しています。
beta.16 (したがって RC.1) では、状況が異なります。配列参照が変更されていなくても、{{myArray}}
バインディングが更新されるようになりました! このRC.1 プランカーを参照してください。
beta.16の ChangeLog を調べましたが、この動作の変更を説明するものは何もありません (ただし、何かを見逃している可能性があります)。この変更の原因と、他に何が影響を受ける可能性があるかを知っている人はいますか?
プランカーコード:
@Component({
selector: 'child',
template: `<p>child: {{arr}}`
})
export class Child {
@Input() arr;
}
@Component({
selector: 'my-app',
template: `{{title}} <p>parent: {{arr}}
<button (click)="modifyArray()">modify array</button>
<child [arr]="arr"></child>`,
directives: [Child]
})
export class AppComponent {
title = "Angular 2 beta.15"; // or "Angular 2 RC.1", as appropriate
arr = 'one two three'.split(' ');
modifyArray() {
this.arr.push('another');
console.log(this.arr);
}
}