我有一个emberjs网络应用程序,其中我的一个视图是一个查询记录数据库的搜索页面。我有能力按日期过滤并使用JQuery的datepicker。
我遇到的问题是,如果用户打开日期选择器,然后点击浏览器后退或前进按钮,它将在屏幕上保持活动状态,直到用户点击为止。澄清流程如下:
当按下浏览器后退按钮时,是否有人建议如何隐藏或销毁日期选择器?
谢谢!
EDIT ---------------------------- 目前的代码:
Formal.Route.Search = Ember.Route.extend({
deactivate: function () {
console.log("hi");
$("ui-datepicker-div").datepicker("destroy");
},
答案 0 :(得分:0)
将删除逻辑放在View而不是Route。让我们假设您的模板名称为"搜索",然后
App.SearchView=Ember.View.extend({
didInsertElement:function(){
$("#ui-datepicker-div").datepicker();
},
willDestroyElement:function()){
$("#ui-datepicker-div").datepicker("destroy");
}
});
注意:我假设你的选择器是ID,如果它是css类,那么使用$(" .ui-datepicker-div")
如果您想将datepicker编写为可以在整个应用程序中使用的组件,那么请在此处观看截屏视频http://eviltrout.com/2014/06/03/jquery-component.html
P.S。如果您仍然无法理解,请在http://jsbin.com/
中显示您的代码答案 1 :(得分:0)
非常感谢你的帮助!
我通过以下方式解决了这个问题:
Formal.View.Datepicker = Ember.TextField.extend({
destroyDatepicker: function () {
this.$().datepicker("hide");
},
});
出于某种原因"销毁"没有做的伎俩,但"隐藏"确实。如果有人知道为什么这是我喜欢听到的话。