我有两个相关的数据源,我通过REST检索它们来创建JSON输出。一个是类别列表,第二个是文章列表。类别可能包含许多文章。
我想按类别查询文章。例如,按类别计算所有文章。对此最好/推荐的方法是什么?在jQuery世界中,我可以嵌套AJAX调用并传递来自第一个AJAX调用的变量。
以下是我的服务:
// Categories
pfcServices.factory('pfcArticleCategories', ['$resource', function ($resource) {
return $resource('https://myrestcall.net/tables/categories', {},
{
'update': { method: 'PATCH' }
}
);
}]);
// All Articles
pfcServices.factory('pfcArticles', ['$resource', function ($resource) {
return $resource('https://myrestcall.net/tables/articles', {},
{
'update': { method: 'PATCH' }
}
);
}]);
以下是一些控制器:
// Retrive categories
pfcControllers.controller('pfcCategoriesCtrl', ['$scope', 'pfcArticleCategories', function ($scope, pfcArticleCategories) {
$scope.categories = pfcArticleCategories.query();
}]);
// All Articles for Counts, Large Queries, etc.
pfcControllers.controller('pfcArticlesCtrl', ['$scope', 'pfcArticles', function ($scope, pfcArticles) {
$scope.articles = pfcArticles.query();
}]);
'pfcArticlesCtrl'中的嵌套函数会起作用吗?我觉得这不是推荐的方法。例如:
pfcControllers.controller('pfcArticlesCtrl', ['$scope', 'pfcArticles', 'pfcArticleCategories', function ($scope, pfcArticles, pfcArticleCategories) {
$scope.categories = pfcArticleCategories.query();
$scope.articles = pfcArticles.query();
var val = [];
angular.forEach(categories, function (value, key) {
var catid = value.catid
angular.forEach(articles, function (v, k) {
if (value.articlecategoryid == catid) {
// count number of articles and psuh them to an array of val to be referenced by $scope.count using ng-repeat
}
}, val);
}
$scope.count = val;
}]);