我通过阅读一本书来学习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也包含在参数中?你也可以解释这些定义,我真的输了。原谅我是个新手,非常感谢!!
答案 0 :(得分:1)
这是一个非常糟糕的例子!!
应该是:
<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>
因此,您可以从可用类别(产品的唯一类别)中选择一个类别,然后列出具有此类别的产品(ng-repeat =“item in data.products | filter:categoryFilterFn&gt;)
categoryFilterFn是一个过滤函数,因此列出了具有category == selectedCategory的产品,如果没有selectedCategory列出所有产品:)
希望这有帮助