【问题标题】:Multiple ValueBinding Instance in EmberEmber 中的多个 ValueBinding 实例
【发布时间】:2013-12-12 04:20:10
【问题描述】:

我有一个这样的控制器,

    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>

最后我的日期选择器视图是这样的:

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 还很陌生。有人可以帮助我吗,我在这里做错了什么?

【问题讨论】:

  • 你在哪里创建那个控制器?

标签: asp.net-mvc model-view-controller ember.js asp.net-web-api


【解决方案1】:

这是连接到两个选择器

   return $('.date').datetimepicker({
        language: 'en',
    }).on('changeDate', OnChangeDate);

您可以使用 this.$() 将其范围限定为该元素

   return $(this.$('.date')).datetimepicker({
        language: 'en',
    }).on('changeDate', OnChangeDate);

【讨论】:

  • 谢谢,我不知道。我说 $('.date').datepicker({..}); 时正在选择文档但是我不得不将其更改为 $(this.$('.date')).datetimepicker({ language: 'en', }).on('changeDate', OnChangeDate);这很奇怪,因为 this.$(.date'),我们已经在选择一个 dom 对象......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多