AngularJS:返回“;“子集”;从工厂收集数据

AngularJS:返回“;“子集”;从工厂收集数据,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我有一个工厂: (function(){ var requestsFactory = function(){ var requests = [ {id: 1, title: 'First Request', status: 'In Progress'}, {id: 2, title: 'Second Request', status: 'Closed'}, {id: 3, title: 'Third Requ

我有一个工厂:

(function(){

    var requestsFactory = function(){

        var requests = [
          {id: 1, title: 'First Request', status: 'In Progress'},
          {id: 2, title: 'Second Request', status: 'Closed'},
          {id: 3, title: 'Third Request', status: 'Waiting'},
          {id: 4, title: 'Fourth Request', status: 'Closed'},
          {id: 5, title: 'Fifth Request', status, 'In Progress'}
        ];

        var factory = {};

        factory.getAllRequests = function(){ return requests; };
        /* THIS IS NEW */
        factory.getOpenRequests = function(){
          var open_requests = filter(requests.status, function(status){
            return status !== 'Closed';
          });
          return open_requests;
        };
        /* END NEW */

       return factory;
}; // end requestsFactory

        return factory;
    };

    angular.module('appITI').factory('requestsFactory', requestsFactory);
}());
该控制器:

(function(){

    var UsersController = function($scope, usersFactory, requestsFactory){
        $scope.current_user = [];
        $scope.requests = [];
        $scope.open_requests = []; // NEW

        $scope.prefs = 'false';

        function init(){
            $scope.current_user = usersFactory.getCurrentUser();
            $scope.requests = requestsFactory.getAllRequests();
             $scope.open_requests = requestsFactory.getOpenRequests(); //NEW
        }

        init();

    }; // end UsersController

    UsersController.$inject = ['$scope', 'usersFactory', 'requestsFactory'];

    angular.module('appITI').controller('UsersController', UsersController);

}());
$scope.open_requests = requestsFactory.requestsByStatus('In Progress');
我需要向工厂中添加一个方法,以便在控制器中调用类似以下内容:

(function(){

    var UsersController = function($scope, usersFactory, requestsFactory){
        $scope.current_user = [];
        $scope.requests = [];
        $scope.open_requests = []; // NEW

        $scope.prefs = 'false';

        function init(){
            $scope.current_user = usersFactory.getCurrentUser();
            $scope.requests = requestsFactory.getAllRequests();
             $scope.open_requests = requestsFactory.getOpenRequests(); //NEW
        }

        init();

    }; // end UsersController

    UsersController.$inject = ['$scope', 'usersFactory', 'requestsFactory'];

    angular.module('appITI').controller('UsersController', UsersController);

}());
$scope.open_requests = requestsFactory.requestsByStatus('In Progress');
这个周末我全神贯注于学习AngularJs,我似乎不知道我打赌什么是简单的JavaScript

新的 我有这个在模板,现在的网页是白色的,打破了

<tr class="landing_data_row" data-ng-repeat="request in open_requests | filter:techFilter | orderBy:sortBy:reverse">

向工厂添加新功能,并使用
过滤器
功能

factory.getOpenRequests = function(){
  return requests.filter(function(el){
    return el.status !== 'Closed';
  });
};
更新
这是您更新的问题的解决方案。

是Angular的“过滤器”吗?因为,如果是的话,我已经给了用户一个文本框来过滤数据,以便轻松找到他们想要的。。。它们会冲突吗?不,标准javascript功能。废话!这个周末,我的脑子里充斥着关于AngularJS的视频、书籍和课程,我几乎一无是处。。。谢谢还有一件事,我可以在其中放一个switch语句,这样我就不必为每次状态调用重写函数了吗?状态选项是由7种可能性组成的有限集合。当然,您可以:)将其编写为包含参数的函数。请参阅更新的问题。。。页面为空,未定义筛选器的referenceError。。。我搞砸了吗?