Angular $ filter不更新$ resource返回的数组上的变量

时间:2013-03-07 14:12:49

标签: filter angularjs xmlhttprequest angular-resource

假设我有一个Angular $resource,它返回一个entries数组,这些数组都具有name属性。我想在Javascript中使用$filter 在模板中使用Angular的{{ blah | filter:filter }}语法)根据这些条目提取这些条目的子集属性。

代码看起来像:

app.controller('AppController', function ($scope, Project, $filter) {
    $scope.entries = Project.query();
    $scope.entry = $filter('filter')($scope.entries, {name: 'Bar'});
    ...
}

但是,如此jsFiddle here所示,该代码段无法按预期工作。当XHR完成时,entry将包含一个空数组,无论entries异步填充什么$scope.$watch。设置entry也不起作用。

我希望在使用数据填充entries时根据过滤器更新{{1}}。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

好的,当我进行更多实验时发现我可以通过向success调用提供query()回调来完成此操作,我已经完成了很多工作:

app.controller('AppController', function ($scope, Project, $filter) {
    $scope.entries = Project.query({}, function() {
        $scope.entry = $filter('filter')($scope.entries, {name: 'Bar'});
    });
    ...
}

请参阅updated jsFiddle