У меня есть массив объектов, который я показываю с помощью директивы st-table.Обновление смарт-таблицы после изменения содержимого
Я фильтрую таблицу на значение определенного поля в объектах. Проблема заключается в том, что после изменения значения поля в этих объектах фильтрация не выполняется.
Я считаю, что причина этого в том, что smart-table наблюдает за длиной массива, но не выполняет глубокого сравнения, чтобы увидеть, изменились ли значения внутри любого из объектов.
Что делать, чтобы решить эту проблему?
изменения: добавлен код:
angular.module('myApp', ['smart-table'])
.controller('mainCtrl', ['$scope', '$timeout',
function ($scope, $timeout) {
$scope.rowCollection = [
{
name: "sth odd",
number: 1
},
{
name: "sth even",
number: 1
}
];
$scope.displayedCollection = [].concat($scope.rowCollection);
function changeNumber(){
$timeout(function(){
$scope.rowCollection[1].number = $scope.rowCollection[1].number === 1 ? 2 : 1;
changeNumber();
}, 1000);
}
changeNumber();
}
]);
http://plnkr.co/edit/IVYy5WrsiEJSRXZCqY9z?p=preview
Обратите внимание, как при поиске, например, число «2», то вид не обновляется, даже если свойство второго элемента иногда «2 «а иногда нет.
Можете ли вы опубликовать код, воспроизводящий эту проблему? – svarog
@svarog, добавленный код и рабочий образец – kihu