1

このようにAngularにネストされたオブジェクトがあります

{
"name": "John"
"age" : "23"
subjects: [

{
"description":"Math"
"length":"1 month"
},
{
"description":"English"
"length":"1 month"
}


]



}

IN angularはfilter問題name, ageなく動作しますが、科目の説明に数学が含まれている学生を見つけるにはどうすればよいですか

4

2 に答える 2

0

フィルターのドキュメント ページには、興味深い例があります。

その中で、検索ボックスの ng-model は searchではなくsearch .$に設定されています。これはマッチングのワイルドカードのようです。

ここにjsFiddleがあります。検索ボックスに何でも入力すると、一致する学生が見つかります。

<input id="txtSearch" type="text" ng-model="search.$" />
<ol>
    <li ng-repeat="student in myData | filter:search">
        {{student.name}}
        {{student.subjects}}
    </li>
</ol>

データモデルは次のようになります。

$scope.myData = [{
    "name": "Student 1",
        "age": "20",
    subjects: [{
        "description": "Math",
            "length": "1 month"
    }, {
        "description": "English",
            "length": "1 month"
    }]
}, {
    "name": "Student 2",
        "age": "22",
    subjects: [{
        "description": "Economics",
            "length": "1 month"
    }, {
        "description": "English",
            "length": "3 months"
    }]
}, {
    "name": "Student 3",
        "age": "23",
    subjects: [{
        "description": "Math",
            "length": "4 months"
    }, {
        "description": "English",
            "length": "6 months"
    }]
}];
于 2013-05-27T16:14:42.213 に答える
-1

これが本当に Angular の質問かどうかわからない - javascript で生の json データを解析する方法が必要です。

これを行う 1 つの方法は、Underscore のような関数型ライブラリを使用することです。これは、これらの種類の操作を実行する関数型のユーティリティを提供します。

例についてはhttp://jsfiddle.net/9W5YF/2/を参照してください。アンダースコアに関するドキュメントについては、http: //underscorejs.orgを確認してください。

var studentsDoingMaths = _.filter(json, function (student) {
var doingMaths = doingSubject("Math");
return subjectSearch(student, doingMaths);});
于 2013-03-26T15:38:41.440 に答える