在指令控制器中更改时获取过滤后的数组

时间:2018-07-14 10:43:06

标签: javascript angularjs

我在控制器$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>

希望您能帮助我。

1 个答案:

答案 0 :(得分:0)

每次数组更改时,您都可以在指令和cURL的链接函数中添加观察值:

https://www.paypal.com/cgi-bin/webscr