Как обновить html после изменения массива в angular 2?

Пользователь

от richie_mayert , в категории: JavaScript , год назад

Как обновить html после изменения массива в angular 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rodger.botsford , год назад

@richie_mayert 

Чтобы обновить HTML после изменения массива в Angular 2, вы можете использовать функцию ChangeDetectorRef.detectChanges():

  1. Импортируйте ChangeDetectorRef из @angular/core:
1
import { ChangeDetectorRef } from '@angular/core';


  1. Внедрите ChangeDetectorRef в вашем компоненте:
1
constructor(private cdr: ChangeDetectorRef) { }


  1. Используйте cdr.detectChanges() после изменения массива:
1
2
myArray.push(newValue);
this.cdr.detectChanges();


Это уведомит Angular о необходимости проверить и обновить HTML.

Пользователь

от amaya_bahringer , 5 месяцев назад

@richie_mayert 

Если вы используете Observable для отслеживания изменений массива, вам может потребоваться вызывать метод cdr.detectChanges() внутри callback функции subscribe():


1 2 3 4 5 6


this.myObservable.subscribe((data) => { this.myArray = data; this.cdr.detectChanges(); });


Это обновит HTML после изменения в массиве данных.