Как перезагрузить компонент с новым списком? - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу перезагрузить свой компонент, нажав кнопку с новым списком.Поэтому моя проблема заключается в том, что он не перезагружает компонент с новым списком после нажатия одной из кнопок.Может ли кто-нибудь помочь мне с этим?Большое спасибо.

Это мой HTML-файл, в котором я передаю свой список.

<div class="content_box_left" *ngIf="isloaded==true">
  <component [list]="actualList"></component>
</div>

Некоторый код из моего Typescript-файла:

actualList=[];
list1=[1, 2, 3, "dog"];
list2=[3, "cat", "mouse", 47];

button1(){
   console.log("Button 1 pressed");
   this.actualList=this.list1;
}
button2(){
   console.log("Button 2 pressed");
   this.actualList=this.list2;
}

Component-HTML-Code:

<div>
    <ion-list>
        <ion-item *ngFor="let list of list">
            <ion-label>{{list}}</ion-label>
        </ion-item>
    </ion-list>
</div>

Компонент-машинописный код:

@Component({
  selector: 'caiditems',
  templateUrl: 'caiditems.html'
})
export class CaiditemsComponent {

  @Input()
  list = []; 
  constructor() {}    
 }
}

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

выяснил в чем проблема.* ngFor не обновляется после некоторых изменений в массиве или списке.Использование trackBy было решением моей проблемы: https://netbasal.com/angular-2-improve-performance-with-trackby-cc147b5104e5

0 голосов
/ 27 сентября 2018

у вас есть ошибка здесь

actualList=[];
list1=[1, 2, 3, dog];
list2=[3, cat, mouse, 47];

изменить на

actualList=[];
list1=[1, 2, 3, 'dog'];
list2=[3, 'cat', 'mouse', 47];

собака, кошка, мышь - строка вам нужна одинарная кавычка.Остальная часть кода в порядке.Взгляни на мой стек-блиц.Я использовал твой код

https://stackblitz.com/edit/angular-zbvh8k?file=src%2Fapp%2Fapp.component.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...