2013-03-26 53 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