【问题标题】:Why is my Meteor app reloading every page when click navigation link?为什么我的 Meteor 应用程序在单击导航链接时会重新加载每个页面?
【发布时间】:2015-02-10 14:08:03
【问题描述】:

这真的让我很困惑。我正在尝试做一些非常基本的事情。

我安装了 Iron-Router,我只是想在页面之间导航。但看起来 Meteor 每次都在重新加载页面,而不是在屈服点重新渲染新页面。

所以我有一个布局文件标题和一个侧边栏模板,以及一个产量模板。

在侧边栏中,我使用 pathFor 助手在单击链接时填写目标 href。例如:

  ul.nav.nav-pills.nav-stacked       
    li.active
      a(href='{{pathFor "dashboard"}}', title='Manage Users')
        i.icon-speedometer
        |  Users
    li
      a(href='{{pathFor "adminFarms"}}', title='Farms')
        i.icon-speedometer 
        |  Farms

但问题是在这两个链接之间导航时,Meteor 会重新加载整个页面!为什么会这样,我觉得我在 Meteor 应用程序中做了很多次,它只是在屈服点加载新页面。但这一次它不断地重新加载整个布局!这是怎么回事,这很简单,但我不明白。

我也不能拦截点击。出于某种奇怪的原因,当我将 id 添加到链接并尝试在 Template.template.events 处理程序中定位它时,我似乎无法将其添加到 console.log 任何东西。为什么我无法拦截 Meteor 中链接的事件。

更新:

如果我从无序列表标签中删除 .nav .nav-pills & .nav-stacked 类,则它可以正常工作。所以问题一定是引导程序以某种方式干扰了 Meteor 单页应用程序的功能。有什么线索吗?

更新 2 发现问题!这是一个包含在我用于多级菜单的主题中的包。该包是 Navgoco,它使用 .nav 类拦截所有事件。

【问题讨论】:

    标签: meteor


    【解决方案1】:

    试试这个事件处理程序。

    Template.dashboard.events({ 
      'click a':function(e) {
       e.preventDefault(); 
    })
    

    【讨论】:

    • 不,这不是解决方案。问题是,无论我做什么,甚至都没有调用事件处理程序。这不是 preventDefault 问题。 Meteor 应该自动拾取链接并加载新页面,而无需重新加载布局。问题是事件处理程序根本没有被调用。我发现引导程序和流星或其他东西存在一些问题
    • 你在使用famo包吗?
    • 不,不使用famo.us。当我不在无序列表上使用 bootstrap .nav .nav-stacked & .nav-pills 类时,一切似乎都有效。一旦我删除了
    • 我正在使用 mizzao 的包:mizzao:bootstrap-3。我应该用另一个引导程序包替换它,这可能是问题吗?
    • 我很确定你有另一个 .css 使用同一个类或导致项目冲突,component.css 或其他东西尝试从项目中删除所有 css 并保留 mizao 并尝试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2013-08-12
    • 2011-09-12
    • 1970-01-01
    • 2019-08-14
    • 2020-12-04
    • 2021-06-14
    相关资源
    最近更新 更多