我正在尝试运行 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/