我试图在模板渲染后运行一些jquery代码。但它不起作用。当我在控制台中手动运行代码时,它可以工作。这是js:
Template.PanelLayout.helpers({
restricted: function() {
return !Meteor.user();
},
authInProcess: function() {
return Meteor.loggingIn();
},
canShow: function() {
return !!Meteor.user();
}
});
Template.PanelLayout.rendered = function() {
$(document).ready(function() { // This is the code I want to run
$(".button-collapse").sideNav();
$('.collapsible').collapsible();
});
}
模板代码:
<template name="PanelLayout">
{{#if restricted}}
{{> NotFound}}
{{else}}
{{#if authInProcess}}
{{> spinner}}
{{else}}
{{#if canShow}}
<header>
{{> PanelMainNav}}
</header>
<main id="panel-content">
{{> Template.dynamic template=content }}
</main>
{{/if}}
{{/if}}
{{/if}}
</template>
我不确定,但我认为这是因为我添加了if else语句只在用户登录时加载内容?我该如何解决这个问题?
答案 0 :(得分:1)
可能是因为在文档准备就绪后调用了渲染函数,因此你的钩子document.ready
无法工作,你应该删除它,所以它看起来像这样({{1}不推荐使用函数,改为使用rendered
:
onRendered