1

ngRepeatディレクティブでカスタムフィルターを使用したいと思います。これが私が持っているものです

HTML:

<div ng-app="menuApp">
    <ul ng-controller="MenuCtrl">
        <li ng-repeat="item in menuItems | rootCategories">
            {{item.Name}}
        </li>
    </ul>
</div>

JS:

angular.module('menuApp', [])
    .filter('rootCategories', function() {
        return function(item) {
            return item.Parent == 0;
        };
    });

function MenuCtrl($scope) {
    $scope.menuItems = [{ "Id": 1, "Name": "Sweep", "Parent": 0 }];

    /*
    $scope.rootCategories = function(item) {
        return item.Parent == 0;
    };
    */
};

コメントアウトされた方法を使用してアイテムをフィルタリングしたくないのは、実際のフィルターが提供された例よりも複雑になるためです。何らかの理由で入力パラメータ「item」が定義されていないため、何も表示されません。何が悪いのか教えていただけますか?ありがとうございました。

4

1 に答える 1

5

このフィドルを見てください。http://jsfiddle.net/bKFXy/。これは、述語オブジェクトをフィルター式として渡す構文を使用します。 item in menuItems | filter:{Parent:0}

フィルタリングには別の方法があり、そのためのフィドルはここにありますhttp://jsfiddle.net/kd5dv/

于 2013-03-02T08:18:07.157 に答える