我希望在加载所有DOM
元素后加载一个 jQuery 脚本。我试图通过Template.Mytemplare.onRendered();
但这并没有解决我的问题,因为 DOM 还没有准备好。另外我使用的是 Flow-router 而不是 Iron Router 所以我不能使用 Iron Router 的onAfterAction
钩子或模板的渲染回调?我还使用了订阅,所以如果订阅准备好了,我会加载 DOM Template.subscriptionReady
。有什么建议么?
问问题
988 次
3 回答
0
现在在 Meteor 中执行此操作的最佳方法是使用以下方法:
Template.MyTemplate.onRendered(function(){
Tracker.afterFlush(function(){
// run code in here
});
});
当 DOM 实际完成加载时,使用 afterFlush 运行代码。您将需要 Meteor “tracker” 包,这是一个官方插件。
于 2020-05-01T00:33:56.390 回答
0
你可以结合 onRendered 和 jQuery 的 ready 函数:
Template.Mytemplate.onRendered(function() {
$(function() {
// your code goes here
});
});
于 2016-01-15T10:40:18.947 回答
-1
问题是Template.myTemplate.onRendered();
执行时,订阅还没有准备好,所以DOM还没有准备好。因为我Template.subscriptionsReady
在加载 DOM 之前使用了检查。OnReady()
所以订阅时会调用一个回调函数 。它会像这样:
Meteor.subscribe("somePublication", {onReady: function(){//code to perform after //subscription is ready goes here }})
于 2016-01-15T11:59:01.843 回答