AndreyKaShops
@AndreyKaShops
4 года с WordPress

AngularJS: Как фильтровать объект (Error: [filter:notarray])?

Приветствую!

Имеется объект данных для формироваться select-тега через angular.
{
"78-1":{
"ID":"78-1",
"name":"Group 1: №1",
"buyed":false,
"disable":false
},
...
}

Формируется html объект из этого шаблона (used controlerAs):
<select ng-model="row.ID" ng-options="row_item.ID as row_item.name disable when row_item.disable for row_item in app.data.rows | filter:rowDisabled" class="form-control"></select>

В котроллере есть функция, по которой должны фильтроваться данные селекта и определенным пунктам устанавливаться row_item.disable = true.
BilCtrl.rowDisabled = function() {
        return function (rows) {
        
            var result = {};
            angular.forEach(rows, function(row, key) {
                row.disable = false;
            
                if( row_item.buyed )
                    row.disable = true;
                    
                for( var i in BilCtrl.rows ){
                    if (!BilCtrl.rows.hasOwnProperty(i))
                        continue
                    
                    if( BilCtrl.rows[i].ID == row.ID )
                        row.disable = true;
                }
                
                result[key] = row;
            });
            
            return result;
        };
    };


Но эта прелесть выдает мне ошибку: Error: [filter:notarray]

Я так и не смог применить фильтр. Неужели для объектов нельзя применять фильтры? Только массивы? В примере у них ведь используется для объекта...
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
Вообщето кастом фильтры пишутся не так
https://docs.angularjs.org/guide/filter
Раздел Creating custom filters
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы