2016-11-13 3 views
0

Мне нужно вручную (или автоматически) изменить свойство обнаружения объекта в массиве. У меня есть массив объекта productShops в цикле ngFor, который фильтруется с помощью свойства isNotDeleted. Когда я изменяю значение свойства isNotDeleted, так что угловое не обнаруживает изменения.Обнаружение изменения объекта в массиве

<ul class="nav nav-tabs"> 
    <li *ngFor="let productShop of product.productShops | filter:'isNotDeleted':true" > 
     <a href="#categoryAssocTab{{productShop.shop.id}}" data-toggle="tab">{{productShop.shop.name}}</a> 
    </li> 
</ul> 

EDIT: Реализация труб:

import {Pipe, PipeTransform} from "@angular/core"; 

@Pipe({ 
    name: 'filter' 
}) 
export class FilterPipe implements PipeTransform{ 

    transform(value:Array<any>, property, equal){ 

     let properties = property.split('.') 

     if(value){ 
      return value.filter(item => { 

       let finalValue:any = item 

       properties.forEach(p => { 
        finalValue = finalValue[p] 
       }) 

       return finalValue == equal 
      }) 
     } 

     return [] 
    } 

} 
+0

Пожалуйста, добавьте реализация труб – yurzui

+0

реализации Добавлено фильтрующей трубы. – JaSHin

+0

Как изменить собственность? – yurzui

ответ

1

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

@Pipe({ 
    name: 'filter', 
    pure: false 
}) 

Смотрите также

Смежные вопросы