2012-07-10 61 views
6

我正在使用ember-data並且有一個內置的日期類型對象。我把這個掛鉤到日期選擇器(建立在Twitter引導組件上)。問題是我在輸入標記中創建了一個日期屬性來存儲日期對象。日期對象以長字符串形式存儲。這必須以某種方式被解析成一個日期對象,然後存儲到App.store中。我在哪裏做這個轉換。這是我迄今爲止所做的。Ember數據日期綁定

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

我使用它在視圖模板這樣

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

當,當日期更改日期屬性設置,日期屬性得到改變其綁定到staff.emp_edate 。不幸的是,staff.emp_edata沒有改變。

任何指針都會有很大的幫助。

回答

8

嘗試以下方法:

小提琴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

給出了錯誤 類型錯誤: '未定義' 不是一個函數(評價 'self.set(' 數據」,EV。日期)') – 2012-07-10 17:40:36

+0

如果你可以撥弄它我可以看到有什麼問題 – 2012-07-10 17:42:22

+0

http://jsfiddle.net/P8usP/1/ – 2012-07-10 18:48:20