Angularjs фильтр накопительный массив

0

У меня проблема с фильтрацией наборов результатов в ng-repeat. Фильтр запускается на каждой итерации через цикл ng-repeat (поэтому, если у меня есть 10 отправлений, возвращаемых currentDispatch.dispatches он будет работать 10 раз). В первый раз, хотя, runs будет только 1 элемент. В следующий раз через это будет 2, затем 3 и так далее. Как выглядят результаты на моем экране...

[1], [1], [1,3], [1,3,4]

Как я могу сделать это, чтобы он запускал фильтр только один раз, поскольку он имеет все элементы для фильтрации? Мне нужен только конечный набор результатов, а не результат каждой итерации.

мой собственный фильтр

angular.module('prototype').filter('dispatchedForMyEquipment', ['Config', function(Config){
    return function(runs){
        var result = []
        var myEquipment = Config.getEquipment();
        runs.forEach(function(run, index, array){
            myEquipment.forEach(function(dispatchEquipment, index, array){
                if (run.units.indexOf(dispatchEquipment)!= -1){
                    result.push(run);
                    return
                }
            });         
        })
        return result
    }
}])

мое предложение ng-repeat

<tr ng-repeat-start="dispatch in ($state.current.data.latest ?
 (currentDispatch.dispatches | orderBy: '-time' | dispatchedForMyEquipment)
 : (currentDispatch.dispatches | orderBy: '-time'))  track by $index">

Я возьму трек по индексу $ index, как только я исправлю проблему.

Теги:

1 ответ

0

Ng-repeat действительно наблюдает за собой, возможно, вы получаете данные через запрос ajax. Сказав, что просто замаскируйте свой ng-repeat с помощью ng-if с условием, что у него есть все 10 элементов... Грязный путь вправо.

  • 0
    Это не сработает ... это требует, чтобы я знал, сколько элементов в моем списке, чего я не знаю.
  • 0
    Неправильно понял ваш вопрос. Вы хотите запустить ng-repeat только один раз, теперь он показывает набор результатов, как только он будет сделан.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню