EmberJS:Jquery datepicker在更改路线时保持活动状态

时间:2014-10-28 23:23:08

标签: javascript jquery jquery-ui ember.js datepicker

我有一个emberjs网络应用程序,其中我的一个视图是一个查询记录数据库的搜索页面。我有能力按日期过滤并使用JQuery的datepicker。

我遇到的问题是,如果用户打开日期选择器,然后点击浏览器后退或前进按钮,它将在屏幕上保持活动状态,直到用户点击为止。澄清流程如下:

  1. 导航至搜索页
  2. 点击选择日期
  3. 出现Datepicker
  4. 用户点击浏览器后退按钮
  5. 上一页加载但是,datepicker仍然在徘徊
  6. 当按下浏览器后退按钮时,是否有人建议如何隐藏或销毁日期选择器?

    谢谢!

    EDIT ---------------------------- 目前的代码:

    Formal.Route.Search = Ember.Route.extend({

        deactivate: function () {
            console.log("hi");
            $("ui-datepicker-div").datepicker("destroy");
    
        },
    

2 个答案:

答案 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");
    },
});

出于某种原因"销毁"没有做的伎俩,但"隐藏"确实。如果有人知道为什么这是我喜欢听到的话。