2015-06-23 13 views
7

Czy jest sposób, w jaki mogę wypełnić listę rozwijaną wartościami przechowywanymi w Mongodb? Na przykład, jeśli mam obiekt car, który ma atrybut color, który może zawierać wartości: black', 'red lub blue, chcę, aby lista rozwijana zawierała te wartości. Muszę to zrobić w javascriptie Meteor.Jak wypełnić menu rozwijane Mongodb w javascript Meteor?

Dziękuję.

+1

co próbowałeś? co nie działa? – Sasikanth

Odpowiedz

7

bez żadnych zależności można zrobić po prostu

<select name="sss"> 
{{#each colors}} 
    <option>{{this}}</option> 
{{/each}} 
</select> 

Template.mytemplate.helpers({ 
    colors: function(){ 
    return Colors.find().map(function (doc) { 
     return doc.name 
    }) 
} 
}); 
+0

Jak mogę to jednak powiązać z obiektem 'cars'? Potrzebuję atrybutu koloru, aby zapisać do obiektu 'cars'. –

2

Najprostszym i najczystszym sposobem jest użycie aldeed:autoform. autoform polega na aldeed:simple-schema i collection2. Z tych pakietów można to zrobić:

Cars = new Mongo.Collection('Cars') 

Cars.attachSchema({ 
    color: { 
    type: String, 
    allowedValues: ['red', 'black', 'green'] 
    } 
}) 

Teraz załóżmy, że masz zbiór nazywany Colors a wszystkie te dokumenty mają wartość name:

function getColors() { 
    return Colors.find().map(function (doc) { 
    return doc.name 
    }) 
} 

Cars.attachSchema({ 
    color: { 
    type: String, 
    allowedValues: getColors() 
    } 
})