【发布时间】:2015-04-15 02:16:24
【问题描述】:
我是 AngularJS 的新手。我正在尝试过滤由recipeService 提供给范围的recipe 对象列表。我的对象出现了,但没有应用过滤器。
如果我将项目直接附加到 $scope 到我的 controller.js 中名为 recipes 的变量,而不是使用 ng-repeat="recipe in recipes",则过滤器有效。
有什么建议吗?问候。
HTML
<li ng-repeat="recipe in recipeService.allRecipes | orderBy:'name':reverse">{{recipe.name}}</li>
reciperService.service.js 在我的工厂:
var service = {};
service.allRecipes = [];
service.getAllRecipes = function () {
return $http.get('/api/recipes')
.success(function (recipes) {
service.allRecipes = recipes;
return recipes;
});
};
return service;
控制器声明中的controller.js:
$scope.recipeService = recipeService;
recipeService.getAllRecipes();
【问题讨论】:
-
$scope.recipes = recipeService.getAllRecipes();你应该这样做,听起来你知道这行得通。这也是更好的方法。
-
请提供js小提琴!
-
过滤器在哪里?
-
orderby 是一个角度过滤器。你说你按照我描述的方式做的,应该不需要小提琴吧?
-
@ribsies 我确实尝试过。我应该在op中这么说。如果我尝试这样做,HTML 上不会填充任何内容。任何想法为什么?
标签: angularjs service filter controller angularjs-orderby