Meteorjs Javascript文件未执行(需要刷新)

时间:2014-09-04 20:04:37

标签: javascript meteor refresh

在查看解决方案的stackoveflow时,不确定如何说出问题,这可能是我找不到解决方案的原因。但...

当我尝试实现类似于此处的示例代码时,将活动类附加到导航链接(https://coderwall.com/p/ahlrua)时,我有时必须在导航到新页面后点击刷新以查看该链接实际上是否处于活动状态。我的猜测是,因为js文件已经加载到客户端,所以当我导航到新页面时,没有后续调用文件?如果是这种情况,即使不是这样,我该如何解决这个问题呢?

当我使用Meteorjs时,我提到的这种行为在我的其他地方发生,即我的面包屑在进入新页面后总是需要刷新。我对这个框架很新,所以请原谅我的无知。

以下是我正在处理的暂存网站,其中存在以下问题:http://jdd.meteor.com/

提前感谢您的时间和考虑:)

1 个答案:

答案 0 :(得分:2)

您需要刷新浏览器以查看活动链接,因为负责激活链接的代码不是被动的:

// Get the current path for URL
curPath = function() {
  var c = window.location.pathname;
  var b = c.slice(0, -1);
  var a = c.slice(-1);
  if(b === "") {
    return "/";
  } else {
    if(a === "/") {
      return b;
    } else {
      return c;
    }
  }
};

仅在呈现模板时检查网址,而不是在更改window.location.pathname时检查网址。

可能的解决方案之一是将IronRouter与包IronRouterActive一起使用。

用法非常简单:

<nav>
    <ul>
        <li class="{{ isActiveRoute 'dashboard' }}">...</li>
        <li class="{{ isActiveRoute 'dashboard|root' }}">...</li>
        <li class="{{ isActiveRoute 'users' 'on' }}">...</li>
        <li class="{{ isActivePath 'products' }}">...</li>
    </ul>
</nav>

Example source