Tracker afterFlush函数的异常:使用Materialize模态未定义

时间:2015-12-27 16:51:13

标签: javascript jquery meteor rendering materialize

我正在尝试在Meteor应用中运行materialize modal。我有一个名为“classrooms”的模板,我正在使用onRendered方法,如下所示:

 Template.classrooms.onRendered(function () {

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

});

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

  

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)

是否有人遇到此问题或知道如何修复它?

1 个答案:

答案 0 :(得分:1)

我弄清楚发生了什么事。我实际上是在我的应用程序中两次调用jQuery。让我解释一下。

在您创建应用时,一旦您拨打meteor create,每个meteor应用都会自动加载jQuery。在大气页面上查看更多信息:https://atmospherejs.com/meteor/jquery

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

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