我通过学习本书来学习AngularJS,但是我陷入了书中难以解释的一些代码行。
因此,此selectCategory()函数包含在ng-click指令中
<a ng-click="selectCategory()">Home</a>
<a ng-repeat="item in data.products | orderBy:'category' | unique:'category'"
ng-click="selectCategory(item)">
{{item}}
</a>
这也是用于触发ng-click指令时根据商品类别对商品进行过滤的过滤器
ng-repeat="item in data.products | filter:categoryFilterFn">
这两个定义如下:
angular.module("sportsStore")
.controller("productListCtrl", function ($scope, $filter) {
var selectedCategory = null;
$scope.selectCategory = function (newCategory) {
selectedCategory = newCategory;
}
$scope.categoryFilterFn = function (product) {
return selectedCategory == null ||
product.category == selectedCategory;
}
});
我已经花了很多时间尝试理解这些代码,但是我还是很困惑,尤其是关于如何定义这两个函数。为什么$ filter也包含在参数中?您也可以解释一下这些定义吗,我真的迷路了。原谅我成为新手,非常感谢!!
最佳答案
这是一个非常糟糕的例子!
它应该是 :
<a ng-click="selectCategory()">Home</a>
<a ng-repeat="item in data.products | orderBy:'category' | unique:'category'"
ng-click="selectCategory(item.category)">
{{item.category}}
</a>
因此,您可以从可用类别(产品的唯一类别)中选择一个类别,然后列出具有该类别的产品(data.products | filter:categoryFilterFn>中的ng-repeat =“ item”)
categoryFilterFn是一个过滤函数,因此将列出类别== selectedCategory的产品,如果未选择selectedCategory,则将列出所有产品:)
希望这可以帮助
关于javascript - 难以理解AngularJS中的某些代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26544498/