我使用的是ember数据,并且有一个内置的日期类型对象。我将其连接到日期选择器(构建在Twitter引导程序组件上)。问题是我在input标记中创建了一个日期属性来存储日期对象。日期对象正在以长字符串的形式存储。这必须以某种方式解析为日期对象,然后存储到App.store中。我在哪里进行转换。这就是我迄今为止所做的。
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没有发生更改。
任何指点都会有很大帮助。
尝试以下操作:
Fiddle: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);
}
});