javascript - Tracker afterFlush 函数出现异常 : undefined using Materialize modal

标签 javascript jquery meteor rendering materialize

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

 Template.classrooms.onRendered(function () {

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

});

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

Exception from Tracker afterFlush function:

随后:

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)

有人遇到过这个问题或者知道如何解决吗?

最佳答案

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

一旦您在创建应用程序时调用 meteor create,每个 Meteor 应用程序都会自动加载 jQuery。在“氛围”页面查看更多信息:https://atmospherejs.com/meteor/jquery

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

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

关于javascript - Tracker afterFlush 函数出现异常 : undefined using Materialize modal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34482601/

相关文章:

javascript - React.js - 类型错误 : Cannot read property 'catch' of undefined

Javascript 正则表达式匹配 <SVG> 标签与可选属性 viewBox

javascript - 以持久的方式在 Chrome 中存储控制台日志

javascript - VSCode 中的 Intellisense 用于 Electron 应用程序开发

javascript - "TOP N WITH TIES"用于 MongoDB

jquery - CSS 问题 "even height to all the child element in a container"

javascript - 有没有办法从您使用 .load() 加载的 htm 加载函数? jQuery

javascript - 我的脚本仅在脚本中有警报功能时才起作用

javascript - 如何修复 Meteor AutoForm datetimepicker 中的 'dtp.setDate' 错误?

meteor - 重叠订阅不发布所有字段