【问题标题】:Exception from Tracker afterFlush function: undefined using Materialize modalTracker afterFlush 函数的异常:未使用 Materialize 模态定义
【发布时间】:2016-04-01 15:47:53
【问题描述】:

我正在尝试在我的 Meteor 应用程序中运行 materialize modal。我有一个名为“教室”的模板,我在其中使用了这样的 onRendered 方法:

 Template.classrooms.onRendered(function () {

   $('.modal-trigger').leanModal();

});

如果我重新加载我的页面,模式会正常工作。但是,一旦我导航出我的页面或在不同的路线上重新加载我的页面并导航回“/classrooms/”,我会收到以下错误:

来自 Tracker afterFlush 函数的异常:

接着是:

TypeError: $(...).leanModal is not a function
    at null.<anonymous> (classrooms.js:18)
    at template.js:116
    at Function.Template._withTemplateInstanceFunc (template.js:457)
    at fireCallbacks (template.js:112)
    at null.<anonymous> (template.js:205)
    at view.js:107
    at Object.Blaze._withCurrentView (view.js:538)
    at view.js:106
    at Object.Tracker._runFlush (tracker.js:497)
    at onGlobalMessage (setimmediate.js:102)

有没有人遇到过或知道如何解决?

【问题讨论】:

    标签: javascript jquery meteor rendering materialize


    【解决方案1】:

    我知道发生了什么。我实际上在我的应用程序中调用了 jQuery 两次。让我解释一下。

    在您创建应用程序时调用meteor create 后,每个流星应用程序都会自动加载 jQuery。在 Atmospheres 页面查看更多信息:https://atmospherejs.com/meteor/jquery

    我还在我的布局中手动插入 jquery。

    通过拥有这两者,这个奇怪的错误出现了。然而,一旦我意识到这一点并从布局中删除了 jQuery,一切就都到位了。所以请确保您没有在您的应用程序上初始化 jQuery 以避免这些错误。

    【讨论】:

    • 我遇到了类似的问题。您的答案不是很清楚,请在代码中指定您是如何在布局中手动插入 jquery 的。
    • 我发现在我的 *.js 文件中将 Template.templateName.onRendered 中的 "onRemdered" 替换为 "helpers" 消除了问题。我现在有了 Template.templateName.helpers。我不知道为什么这会有所帮助,但我希望这对那里的人有所帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2017-03-21
    • 2014-08-15
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多