我通过学习本书来学习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/

10-10 23:39