在我的流星项目中,我有这样的代码:

baz = function() {
    // some jQuery add/remove class here...
};

Template.foo.onRendered(function() {
    baz();
});

Template.bar.onRendered(function() {
    baz();
});

Template.qux.onRendered(function() {
    // no baz() call
});


有没有更好的方法可以完成此任务,而无需在某些模板渲染上重复baz();

最佳答案

流星1.2.1允许您通过以下代码运行全局onRendered()函数:

Template.onRendered(function() {
    var that = this; //pass that into baz() if you need it
    Deps.afterFlush(function() {
        console.log('baz');
        baz();
    });
});


如果这不满足您的需要,并且您希望在每个页面上使用它,只需在一些常用模板(如菜单或页面标题)中使用onRendered(),但这不能保证您尝试使用JQuery更改的HTML将被保留。呈现。

关于javascript - 一些模板渲染的 meteor 回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35063213/

10-15 23:07