我有数据的数组,如:
$scope.fathersArr = [
{ name: 'Joe', children:
[
{ name:'Ammy' },
{ name:'Jane'},
{ name:'Honey'}
]
},
{ name: 'Joe', children:
[
{ name:'Tonny' },
{ name:'Katty'},
{ name:'Jonny'}
]
}
];
我需要从数组中获取值,我将其过滤为:
$scope.bestFather = $filter('filter')($scope.fathersArr, { name: 'Make'})[0];
我以类似的方式呈现数据:
<li ng-repeat='child in bestFather.children'>{{child.name}}</li>
当我更新$scope.fathersArr
时,我的过滤值未更新。
我认为,$filter
不支持双向绑定。那么如何更新我的过滤值呢?
答案 0 :(得分:0)
$ scope.bestFather不会自动重新评估。您需要在$ scope.fathersArr上添加一个监视,然后再次执行过滤以更新该值。
$scope.$watch('fathersArr', function onFathersArrayChanged(fathersArr){
$scope.bestFather = $filter('filter')(fathersArr, { name: 'Make'})[0];
});
我很好奇为什么你不在模板中使用过滤器。它将自动为您重新评估。