2012-04-30 15 views

Respuesta

10

se unen a la propiedad checked de Ember.Checkbox, ver http://jsfiddle.net/5pnVg/:

Manillar:

{{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') 
});​ 
+3

Bueno, esto devuelve solo un solo valor comprobado correcto, wt Si ... tenemos que obtener todas las opciones marcadas a la vez? – user1338121

0

bien, así que esto es un poco viejo pero tropezó con esto también. Tenía mis opciones de casilla de verificación entregadas al modelo de la ruta en una matriz. El problema realmente es lograr el enlace bidireccional (si este es el objetivo). Así es como lo he hecho:

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

Así que aquí he configurar las propiedades de fijarse en función de su presencia en conjunto formas del modelo y establecer un observador que verifica estas propiedades a restablece variedad de formas del modelo si es requerido. Ahora en la plantilla de artículos que se pueden unir a las formas como siempre (aunque lo hace):

Shapes: 
{{#each shape in this.shapes}} 
    <span class="label label-default">{{shape}}</span><br /> 
{{else}} 
    No shape selected! 
{{/each}} 

y en la plantilla ItemEdit que se unen a las propiedades del controlador de edición:

Shapes: 
Round: {{input type="checkbox" checked=isRound}} 
Oval: {{input type="checkbox" checked=isOval}} 
Irregular: {{input type="checkbox" checked=isIrregular}} 

Hope esto ayuda a cualquier persona que tenga problemas con este tipo de encuadernación manual bidireccional y obtendrá todas las opciones comprobadas en su modelo de una sola vez.