0
返回数据的“子集”我有这样的工厂:AngularJS:从工厂
(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');
我一直这样学习AngularJs这个周末我似乎不能图吸收输出我敢打赌的是简单的JavaScript。
新 我在模板中有这个,现在页面是白色的和破碎的。
<tr class="landing_data_row" data-ng-repeat="request in open_requests | filter:techFilter | orderBy:sortBy:reverse">
是Angular的“过滤器”吗?因为,如果是这样,我已经给用户一个文本框来过滤数据以轻松找到他们正在寻找的东西......它们会冲突吗? – jgravois
不,标准的JavaScript功能。 – aludvigsen
废话!我的大脑充满了AngularJS本周末的视频,书籍和课程,我几乎没用......谢谢! ...另一件事,我可以把switch语句放在那里,这样我就不必为Status上的每个调用重写一个函数了吗?状态选择是有限的7种可能性。 – jgravois