{{myArray}} теперь обновляется в виде с бета.16.
Обнаружение изменений изменилось.
До бета.16, если ваше мнение содержит{{myArray}}
эта привязка не обновится, если вы не измените ссылку на массив. Например, если выpush()
элементы в массив, представление не будет обновляться, чтобы показать новый элемент. Объяснение заключается в том, что поскольку ссылка на массив не изменилась, обнаружение угловых изменений не переоценивает привязку. этобета.15 плункер демонстрирует это поведение.
Начиная с бета.16 (и, следовательно, RC.1), все по-другому.{{myArray}}
привязка теперь будет обновляться, даже если ссылка на массив не изменилась! Видеть этоRC.1 поршень.
Я посмотрел наChangeLog для бета.16и я не вижу ничего, что могло бы объяснить это изменение в поведении (но, возможно, я что-то пропустил). Кто-нибудь знает, что вызвало это изменение, и что еще может повлиять?
Код плункера:
@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);
}
}