twitter-bootstrap – 当我使用bootstrap datepicker时,为什么Ember.js会丢失valueBinding?

前端之家收集整理的这篇文章主要介绍了twitter-bootstrap – 当我使用bootstrap datepicker时,为什么Ember.js会丢失valueBinding?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到在我的应用程序中,当我使用下面的代码时,我在日期选择器小部件中给出了格式化日期,但是当我单击搜索时,控制台显示空字符串.但是,如果我删除了didInsertElement方法,我将丢失datepicker弹出窗口,但数据绑定仍然存在,控制台显示我输入的日期.

在我的车把模板中

@H_301_4@{{view App.DateField valueBinding="controller.startDate" classNames="startDate"}} {{view App.DateField valueBinding="controller.endDate" classNames="endDate"}} <button {{action "search" target='controller'}}>Search</button>

在我的应用程序中

@H_301_4@App.ApplicationController = Ember.ArrayController.extend({ search: function() { console.log(this.get('startDate')); return console.log(this.get('endDate')); } }); App.DateField = Ember.TextField.extend({ didInsertElement: function() { return this.$().datepicker(); } });

我设置didInsertElement时为什么会丢失数据绑定的任何想法?

版本:
bootstrap-datepicker,

@H_301_4@handlebars-1.0.0-rc.3 ember-1.0.0-rc.3 jQuery 1.9.1

解决方法

我认为问题在于,datepicker和ember都会以不同的方式看到值的变化.看看这个: @H_301_4@App.DateField = Ember.TextField.extend( didInsertElement: -> @.$().datepicker().on 'changeDate',=> @.$().trigger('change') )

当窗口小部件更改事件触发时,如果您转向并触发元素上的更改事件,则Ember应注册绑定已更新的事实.

猜你在找的Bootstrap相关文章