我希望在加载所有DOM
元素后加载jQuery脚本。我试图通过Template.Mytemplare.onRendered();
但是这不能解决我的问题,因为DOM尚未准备就绪。我也在使用Flow-router而不是Iron Router所以我不能使用Iron Router的onAfterAction
钩子或模板的渲染回调?我还使用了订阅,所以如果订阅准备好Template.subscriptionReady
,我会加载DOM。有什么建议吗?
答案 0 :(得分:0)
你可以结合onRendered和jQuery的ready函数:
Template.Mytemplate.onRendered(function() {
$(function() {
// your code goes here
});
});
答案 1 :(得分:0)
现在在Meteor中最好的方法是使用以下代码:
Template.MyTemplate.onRendered(function(){
Tracker.afterFlush(function(){
// run code in here
});
});
在DOM实际完成加载后,使用afterFlush运行代码。您将需要Meteor“ tracker”软件包,这是一个官方插件。
答案 2 :(得分:-1)
问题是,当执行Template.subscriptionsReady
时,订阅还没有准备好,所以DOM还没有准备好。因为我在加载DOM之前使用了OnReady()
检查。因此订阅时会有一个名为Meteor.subscribe("somePublication", {onReady: function(){//code to perform after //subscription is ready goes here }})
的回调函数。会是这样的:
UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(url);
uri = urlBuilder.build().encode("ISO-8859-1").toUri();