{{myArray}} ahora se actualiza en la vista a partir de beta.16

La detección de cambios ha cambiado.

Antes de beta.16, si su vista contiene{{myArray}}, ese enlace no se actualizará si no modifica la referencia de la matriz. Por ejemplo, si ustedpush() elementos en la matriz, la vista no se actualizará para mostrar el nuevo elemento. La explicación es (bueno, fue) que debido a que la referencia de matriz no cambió, la detección de cambio angular no reevalúa el enlace. Estabeta.15 plunker Demuestra este comportamiento.

A partir de beta.16 (y por lo tanto RC.1), las cosas son diferentes. los{{myArray}} ¡el enlace ahora se actualizará incluso si la referencia de matriz no ha cambiado! Mira estoRC.1 Plunker.

Miré elChangeLog para beta.16, y no veo nada que explique este cambio de comportamiento (pero tal vez me perdí algo). ¿Alguien sabe qué causó este cambio y qué más podría verse afectado?

Código de Plunker:

@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);
  }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta