Emberjs fornisce selectionBinding per la casella di controllo per gestire le opzioni selezionate/selezionate.SelectionBinding per Checkbox in EmberJs
Se sì, come si fa?
Emberjs fornisce selectionBinding per la casella di controllo per gestire le opzioni selezionate/selezionate.SelectionBinding per Checkbox in EmberJs
Se sì, come si fa?
legarsi al checked
proprietà di Ember.Checkbox
, vedere http://jsfiddle.net/5pnVg/:
Manubrio:
{{view Ember.Checkbox checkedBinding="App.objController.isChecked" }}
JavaScript:
App.objController = Ember.Object.create({
isChecked: true,
_isCheckedChanged: function(){
var isChecked = this.get('isChecked');
console.log('isChecked changed to %@'.fmt(isChecked));
}.observes('isChecked')
});
Okay, quindi questo è un pò vecchio, ma io inciampato su questo anche. Ho avuto le mie opzioni di checkbox consegnate al modello del percorso in un array. Il problema è in realtà con il raggiungimento di un legame bidirezionale (se questo è l'obiettivo). Questo è come ho fatto:
App.ItemEditController = Ember.ObjectController.extend({
isRound: function() {
return (this.get('model.shapes').find(function(item) { return (item === 'round') }));
}.property('model.shapes'),
isOval: function() {
return (this.get('model.shapes').find(function(item) { return (item === 'oval') }));
}.property('model.shapes'),
isIrregular: function() {
return (this.get('model.shapes').find(function(item) { return (item === 'irregular') }));
}.property('model.shapes'),
shapes: function() {
var self = this;
['round','oval','irregular'].map(function(item) {
var shapes = self.get('model.shapes');
shapes = shapes.toArray();
if (self.get('is' + item.capitalize())) {
if (shapes.indexOf(item) < 0)
shapes.push(item);
} else {
if (shapes.indexOf(item) >= 0)
shapes.splice(shapes.indexOf(item),1);
}
self.set('model.shapes', shapes);
});
}.observes('isRound', 'isOval', 'isIrregular')
});
Così qui ho installato le proprietà di porsi in base alla loro presenza in serie forme del modello e impostare un osservatore che controlla queste proprietà per reimposta gamma di forme del modello se necessario. Ora, nel modello di elemento che può legarsi a forme come facciamo sempre (ma si fa):
Shapes:
{{#each shape in this.shapes}}
<span class="label label-default">{{shape}}</span><br />
{{else}}
No shape selected!
{{/each}}
e nel modello ItemEdit ci legano alle proprietà del controller di modifica:
Shapes:
Round: {{input type="checkbox" checked=isRound}}
Oval: {{input type="checkbox" checked=isOval}}
Irregular: {{input type="checkbox" checked=isIrregular}}
Speranza questo aiuta con chiunque abbia difficoltà con questo tipo di rilegatura manuale a due vie e avrai tutte le opzioni selezionate nel tuo modello in un colpo solo.
beh, questo restituisce solo un singolo valore verificato a destra, wt Se .. dobbiamo ottenere tutte le opzioni selezionate in una volta? – user1338121