流星:导航到具有铁路由器的新路由时,仅在移动设备上刷新整页

时间:2014-08-30 20:42:15

标签: jquery mobile meteor iron-router touchstart

我的meteor应用程序在桌面上按预期工作,但由于在更改路径时不必要的总页面刷新,因此移动体验较慢。

我使用“模拟触摸屏”选项和移动Chrome中的Galaxy S4在google开发工具上测试了我的应用程序。当我点击触发铁路由器路由到新路由的按钮或链接时,整个页面将刷新而不是包含模板的一个yield(即页眉和页脚与标签一起重新加载。整个页面)。应该发生什么,以及当“模拟触摸屏”选项未激活且单击按钮和链接时桌面上发生的情况是正常行为,{{>让 }}。正如预期的那样,页面的其余部分不会刷新。我只知道当“模拟触摸屏”选项处于活动状态时,首先触发一个触摸启动事件,然后触发一个点击事件,导致整个页面刷新。

有关导致此问题的原因和解决方法的任何想法?

一些示例代码如下:

//makes the button clicked make the page go back
'click .glyphicon-chevron-left' : function(e) {
e.preventDefault();
history.back();
};


// when clicked goes to a preference page
<a id='Preferences'  href="{{pathFor 'pref'}}" data-toggle="collapse"  data-target=".nav- collapse"> Preferences </a> 

将meteor版本0.9.0.1与以下软件包一起使用: 不安全 标准的应用程序的程序包 铁路由器 纺 铁路由器进展 单页登录 帐户的用户界面 账户密码 动画,CSS 流星 natestrauser:连接横幅 mizzao:自举-3

编辑:错误是由非包相关的第三方javascript文件引起的。如果我能确定问题的具体原因,将会进一步更新。

2 个答案:

答案 0 :(得分:2)

我修好了。

Template.back.events({
        'click #back': function (evt) {
            window.history.back();
            evt.preventDefault();
        },
        'touchstart #back': function () {
            window.history.back();
            evt.preventDefault();
        }
    });

Template.layout.events({
    'touchstart a': function (evt) {
        console.log(evt);
        evt.preventDefault();
        Router.go($(evt.currentTarget).attr('href'));
        return false
    }
});

答案 1 :(得分:0)

我遇到了同样的问题。 刚刚删除 axw:ratchet