4

私はangularJSを初めて使用します。JSONデータを検索する必要があります。これがJSON構造の例です

countries =   [
{
    "country_name" : "India",
    "stations" : [
        {
            "name": "Dream Factory"
        }
    ]
},

{
    "country_name" : "Indonesia",
    "stations" : [
        {
            "name": "Drummer Factory"
        },  
        {
            "name": "Beats"
        }
    ]
}
]

「と入力Indすると、文字列に一致する国が必要で、両方が返さIndiaIndonesia ます。また、他のフィールドで入力するFactoryと、文字列に一致するステーション名が取得されます(ここDrummer Factoryでは、Dream Factory)。

これを達成する簡単な方法は何ですか?これを解決する組み込みのディレクティブはありますか、またはフィルターを使用できますか?はいの場合、例を付けて投稿してください...

4

1 に答える 1

3

'filter'という名前のフィルターを使用できます(はい、少し混乱します):http ://docs.angularjs.org/api/ng.filter:filter

これがデモです:http://jsfiddle.net/g/pXnRs/4/

HTML:

<div ng-controller="CountryController">
    Filter: <input ng-model="nameFilter" />
    <ul>
        <li ng-repeat="country in countries | filter: nameFilter">
            {{country | json}}
        </li>
    </ul>      
</div>​

JS:

var app = angular.module('app', []);

app.controller('CountryController', function($scope){
    $scope.nameFilter = '';
    $scope.countries = [
    {
        "country_name" : "India",
        "stations" : [
            {
                "name": "Dream Factory"
            }
        ]
    },   
    {
        "country_name" : "Indonesia",
        "stations" : [
            {
                "name": "Drummer Factory"
            },  
            {
                "name": "Beats"
            }
        ]
    }];
});

angular.bootstrap(document, ['app']);

結果としてのみステーションが必要な場合は、最初にJSONオブジェクト階層をステーションのリストにフラット化する必要があります。</ p>

于 2012-10-30T13:17:01.667 に答える