Willem de Wit
Willem de Wit

Reputation: 8732

List of checkboxes values as array like Ember.Select (multiple)

Is there a way to get the data of a list of checkboxes in Ember as an array of id's?

In my app I want to make a new Site. I made a route to /sites/new to show a form with fields to add a Site.

This is my Model:

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

This is my Controller:

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();
    }
});

This is (part of) my SitesNewView:

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

In my console languages is null. How do I get an array of language-id's out of this.get('languages')?

UPDATE

I mean something like an Ember.Select with attribute multiple=true, like this: {{view Ember.Select selectionBinding="languages" contentBinding="controllers.languages" optionValuePath="content.id" optionLabelPath="content.name" multiple="true"}}

Upvotes: 3

Views: 4754

Answers (1)

ThomasDurin
ThomasDurin

Reputation: 2003

Take a look to the jsfiddle that I quickly created.

This may not be the best solution but at least it should help you.

Upvotes: 2

Related Questions