【问题标题】:Meteorjs Javascript Files Not Executing (Requires Refresh)Meteorjs Javascript 文件未执行(需要刷新)
【发布时间】:2014-09-04 20:04:37
【问题描述】:

不知道如何表达这个问题,这可能是我在通过 stackoveflow 寻找解决方案时没有找到解决方案的原因。但是……

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

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

这是我正在处理的有这个/这些问题的临时站点:http://jdd.meteor.com/

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

【问题讨论】:

    标签: javascript meteor refresh


    【解决方案1】:

    您需要刷新浏览器才能看到活动链接,因为负责激活链接的代码不是反应性的:

    // 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;
        }
      }
    };
    

    它只在模板渲染时检查 url,而不是在 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

    【讨论】:

    • 谢谢,我会试一试的。然而,这个问题遍及我网站的其他方面(即面包屑)。也许当我对此进行调查时,它也会纠正这种情况。今天晚些时候会试试这个。再次感谢。
    猜你喜欢
    • 2018-08-15
    • 2018-12-06
    • 2015-04-06
    • 2018-08-23
    • 2018-07-08
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多