2013-03-20 4 views
0

Je triyng faire un filtre sur une collection, le modèle est un étudiant comme celui-ci:collection Backbone.js où

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

si j'essaie de faire un filtre comme ceci:

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

myVar sera rempli d'étudiants selon le code et il n'y a pas de problèmes. Mais comment puis-je filtrer par code-cours? je l'ai déjà essayé:

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

mais je ne reçois rien, si j'essaie

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

J'obtiens l'erreur.

Répondre

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

kepp à l'esprit que .Find ne retourne que le premier étudiant, en ce qui concerne la définition: http://underscorejs.org/# find – d4n13l

3

supposons que vous trouver des étudiants avec le code de cours 101.

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

Mais il n'y a aucun moyen de le faire en utilisant la fonction where? – ceptrus

+0

Je pense que cela fonctionne uniquement avec des références, pas des valeurs, comme vous le feriez. Ma compréhension pourrait être un peu ici. Allez plutôt filtrer. –

Questions connexes