流星停止运行模板`渲染'功能

时间:2015-11-17 09:12:26

标签: meteor

我试图在模板渲染后运行一些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语句只在用户登录时加载内容?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

可能是因为在文档准备就绪后调用了渲染函数,因此你的钩子document.ready无法工作,你应该删除它,所以它看起来像这样({{1}不推荐使用函数,改为使用rendered

onRendered