У меня есть массив объектов, которые я отображаю с помощью директивы 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», а иногда нет.