2012-07-10 33 views
6

Estoy usando ember-data y hay un objeto de tipo de fecha incorporado. Estoy enganchando esto al selector de fecha (basado en los componentes de arranque de Twitter). El problema es que creé un atributo de fecha en la etiqueta de entrada para almacenar el objeto de fecha. El objeto de fecha obtiene la tienda como una cadena larga. Esto tiene que analizarse de alguna manera en un objeto de fecha y luego almacenarse en App.store. ¿Dónde hago esta conversión? Esto es lo que he hecho hasta ahora.Ember Data data binding

App.DatePicker = Ember.View.extend({ 
    classNames: ['ember-text-field','input-small'], 
    tagName: "input", 
    attributeBindings: ['data','value','format','readonly','type','size'], 
    size:"16", 
    type: "text", 
    format:'mm/dd/yyyy', 
    value:function(){ 
     var date = this.get('data'); 
     if(date) 
      return date.format(this.get('format')); 
     else 
      return ""; 
    }.property('data'), 
    data:null, 
    didInsertElement:function(){ 
     this.$().datepicker({ 
      format:this.get(this.get('format')) 
     }).on('changeDate', function(ev){ 
      console.log(ev.date); 
      console.log(ev.target); 
      ev.target.setAttribute('data',ev.date); 
     }); 
    } 
}); 

lo estoy usando en la plantilla de vista como esta

{{view App.DatePicker dataBinding="staff.emp_edate" format="mm/dd/yyyy"}} 

Cuando el atributo de fecha se establece cuando se cambia la fecha, el atributo fecha se cambiaba de ropa que se enganchan a la staff.emp_edate . Desafortunadamente, staff.emp_edata no se está cambiando.

Cualquier apuntador será de gran ayuda.

Respuesta

8

intente lo siguiente:

violín: http://jsfiddle.net/ppanagi/9rCBL/

App.DatePicker = Ember.View.extend({ 

    // ... leave the rest as is 

    didInsertElement: function(){ 
    var self = this; 

    var onChangeDate = function(ev) { 
     self.set('data', ev.date); 
    }; 
    var format = this.get('format'); 

    this.$().datepicker({ format: format }) 
     .on('changeDate', onChangeDate); 
    } 
}); 
+0

da el error TypeError: 'indefinido' no es una función ('self.set (' evaluación de datos', ev. fecha) ') –

+0

si puede virarlo Puedo ver lo que está mal –

+0

http://jsfiddle.net/P8usP/1/ –

Cuestiones relacionadas