我有一个像这样的控制器,
App.NewController = Ember.Controller.extend({
// the initial value of the `search` property
model: this.get('model'),
start_date:new Date(),
end_date: new Date()
});
我的视图模板如下所示,
<div class="control-group">
<label class="control-label" for="inputPassword">Event Start Date</label>
<div class="controls">
{{view App.DatePickerField valueBinding='controller.start_date'}}
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">Event End Date</label>
<div class="controls">
{{view App.DatePickerField valueBinding='controller.end_date'}}
</div>
</div>
最后我有这样的datepicker视图:
App.DatePickerField = Ember.View.extend({
templateName: "Datepicker",
didInsertElement: function () {
var OnChangeDate, self;
self = this;
OnChangeDate = function (evt) {
return self.set('value', evt.date.toString());
};
return $('.date').datetimepicker({
language: 'en',
}).on('changeDate', OnChangeDate);
}
});
现在的问题是,如果我选择我的开始日期,controller.start_date会同时更新,就像我想要的那样。但是当我选择结束日期时,start_date和end_date都会更新,现在start_date具有相同的end_date值。就像ValueBinding保持同步一样。我对Ember很新。有人可以帮助我,我在这里做错了吗?
答案 0 :(得分:1)
这与两个选择器挂钩
return $('.date').datetimepicker({
language: 'en',
}).on('changeDate', OnChangeDate);
您可以使用此函数将其范围限定为此元素。$()
return $(this.$('.date')).datetimepicker({
language: 'en',
}).on('changeDate', OnChangeDate);