2013-02-25 2 views
3

Есть ли способ получить данные из списка флажков в Ember в виде массива id?Список значений флажков как массив, например, Ember.Select (multiple)

В моем приложении я хочу создать новый сайт. Я сделал маршрут до /sites/new, чтобы показать форму с полями, чтобы добавить сайт.

Это моя модель:

App.Site = DS.Model.extend({ 
    name : DS.attr('string'), 
    languages: DS.hasMany('App.Language') 
}); 
App.Language = DS.Model.extend({ 
    name : DS.attr('string') 
}); 

Это мой контроллер:

app.SitesNewController = Em.ObjectController.extend({ 
    needs : [ 'languages' ], 
    name: null, 
    languages: null, 
    createSite : function() { 
     // Get the site name 
     var name = this.get('name'); 
     var languages = this.get('languages'); 
     console.log(name,description,languages); 
     // Create the new Site model 
     app.Site.createRecord({ 
      name : name, 
      languages : languages 
     }); 

     // Save the new model 
     this.get('store').commit(); 
    } 
}); 

Это (часть) мой SitesNewView:

{{#each controllers.languages}} 
    <label class="checkbox"> 
     {{view Ember.Checkbox checkedBinding="languages"}} 
     {{ name }} 
    </label> 
{{/each}} 
<button {{ action "createSite" }}>Save</button> 

В моих языках консоли null , Как получить массив идентификаторов языка из this.get('languages')?

UPDATE

Я имею в виду что-то вроде Ember.Select с атрибутом multiple=true, как это: {{view Ember.Select selectionBinding="languages" contentBinding="controllers.languages" optionValuePath="content.id" optionLabelPath="content.name" multiple="true"}}

+1

Я задал вопрос, похожий на него, и получил хороший ответ. См. Http://stackoverflow.com/questions/14665026/two-way-binding-between-object-attribute-array-enum-on-server-and-ember-checkb –

ответ

2

Посмотрите на jsfiddle, что я быстро создал.

Это может быть не лучшее решение, но по крайней мере оно должно вам помочь.

Смежные вопросы