2017-01-11 10 views
0

поэтому его о двухсторонним связывании между вкладками и массивом, добавление элементов в массив прекрасно работает, но удаление элемента не имеет никакого эффектаNG2-самозагрузки динамические вкладки не удаляются, когда элемент массива удаляются

Шаблон:

<tab *ngFor="let brand of brands; let i = index" 
    [heading]="brand.title" 
    [removable]="true" 
    (removed)="removeBrand(i)"> 
</tab> 


Компонент:

private brands = [ 
    { title: 'Ford' }, 
    { title: 'Renault' }, 
    { title: 'Hyundai' }, 
    { title: 'Porsche' }, 
] 

private addAndDelete() { 
    this.brands = this.brands.slice().splice(0, 1) 
    this.brands.push({ title: 'newcar' }) 
} 

, когда вызывается addAndDelete(), я получаю дополнительную вкладку «новый автомобиль», но ничего не удалено. это ошибка или я что-то испортил?

ответ

1

Прежде всего, вы не можете использовать метод addAndDelete. Удаление и добавление должны быть в двух отдельных методах!

Так добавить:

add() { 
    this.brands.push({title: 'newcar'}) 
} 

на вкладке вы должны иметь

(removed)="removeBrand(brand)" 

и ваш REMOVE-метод:

removeBrand(brand) { 
    let index = this.brands.indexOf(brand); 
    this.brands.splice(index, 1); 
} 

это должно работать нормально :)

1

Чтобы заставить это работать, я должен был это сделать :

@ViewChild(TabsetComponent) private tab: TabsetComponent; 
removeBrand(brand){ 
    this.tab.removeTab(brand); 
}