2013-03-26 52 views
1

我有我的角度是這樣如何篩選從嵌套對象的結果角度

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

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


] 



} 

IN角嵌套對象filter正常工作與name, age,但我怎麼能找到這些學生,其主題描述包含數學

回答

-1

不知道這是否真的是一個角度問題 - 您需要一種方法來解析JavaScript中的原始json數據。

這樣做的一個方法是使用像Underscore這樣的函數庫,它提供了像實用程序一樣的功能來執行這些操作。

查看http://jsfiddle.net/9W5YF/2/查看示例,並檢查http://underscorejs.org以獲取有關下劃線的文檔。

var studentsDoingMaths = _.filter(json, function (student) { 
var doingMaths = doingSubject("Math"); 
return subjectSearch(student, doingMaths);}); 
0

關於filters的文檔頁面有一個有趣的例子。

在這裏面,搜索框的NG-模式設置爲搜索。$代替搜索的。這似乎是匹配的通配符。

這是你的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" 
    }] 
}]; 
+0

,如果你想在任何屬性過濾器的工作原理。 但是,如果您只想過濾1個特定屬性(如主題描述),您將如何去做? – Kenny 2013-07-14 15:00:57