我在控制器$scope
中有一个数组,该数组在单击两个按钮之一进行过滤时进行了过滤。
我注意到指令控制器仅在过滤后的数组变大时才进入。
我尝试使用console.log
进行检查,它将过滤后的数组呈现给DOM,但没有在console.log
中打印过滤后的数组。
只要更改值,我想console.log
过滤数组。
这是我的代码:
angular.module('myApp', ['components']).controller('myctrl', ['$scope', function($scope) {
$scope.arr = [{name: 'a', age: 30}, {name: 'b', age: 25}, {name: 'c', age: 15}];
$scope.farr = $scope.arr.filter(item => item.age > 20);
$scope.func = function(value) {
$scope.farr = $scope.arr.filter(item => item.age > value);
}
}]);
angular.module('components', []).directive('helloWorld', function() {
return {
restrict: 'E',
scope: {
arr: '=',
p: '='
},
template: '<div>Hello {{p.name}}</div>',
controller: (function ($scope) {
console.log($scope.arr); // prints once $scope.arr becomes larger
})
}
})
<div ng-controller='myctrl'>
<button ng-click="func(25)">above 25</button>
<button ng-click="func(20)">above 20</button>
<div class="container">
<hello-world arr="farr" p="obj" ng-repeat="obj in farr"></hello-world>
</div>
<div>
希望您能帮助我。
答案 0 :(得分:0)
每次数组更改时,您都可以在指令和cURL
的链接函数中添加观察值:
https://www.paypal.com/cgi-bin/webscr