2013-03-20 110 views
0

我triyng做一个过滤器上的集合,该模型是这样的学生:Backbone.js的集合,其中

{ 
    code: "some code", 
    name: "some name", 
    course: { 
     course_code: "some code", 
     course_name: "course name" 
    } 
} 

,如果我尝试做这样的过滤器:

var myVar = students.where({code: "some code"}) 

myVar将根据代码填充学生,并且没有问题。但我怎样才能通过course_code进行过滤? 我已经尝试过:

var myVar = students.where({course: {course_code: "some code"}}) 

,但我什么也没得到,如果我尝试

var myVar = students.where({course.course_code: "some code"}) 

我得到的错误。

回答

1
var myVar = students.find(function(s) {return s.course.course_code == "some code"}) 
+0

kepp记住.find只返回第一个学生,有关的定义:http://underscorejs.org/#找到 – d4n13l 2013-08-23 11:48:54

3

让我们假设你发现学生课程代码101

var student_with_course_code = students.filter(function(student) { 
     return student.get('course').get('code') == 101; 
}); 
+0

但是使用where函数没有办法做到这一点? – ceptrus 2013-03-20 20:35:21

+0

我认为哪里只适用于引用,而不是像你会使用的值。我的理解可能稍微偏离这里。改为过滤。 – 2014-02-07 14:53:23