复选框列表值为数组,如Ember.Select(multiple)

时间:2013-02-25 12:59:00

标签: ember.js ember-data

有没有办法将Ember中复选框列表的数据作为id的数组?

在我的应用中,我想制作一个新网站。我做了一个到/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')中获取一系列语言ID?

更新

我的意思是类似于Ember.Select,其属性为multiple=true,如下所示:{{view Ember.Select selectionBinding="languages" contentBinding="controllers.languages" optionValuePath="content.id" optionLabelPath="content.name" multiple="true"}}

1 个答案:

答案 0 :(得分:2)

看看我快速创建的jsfiddle

这可能不是最好的解决方案,但至少它可以帮到你。