gpt4 book ai didi

javascript - meteor :onRendered 在第二次渲染铁路线后不会再次被解雇

转载 作者:行者123 更新时间:2023-11-29 18:06:09 27 4
gpt4 key购买 nike

我有一个 iron-router 路由:

    Router.route('/profiel/bewerken', {
subscriptions: function () {
return Meteor.subscribe('currentUser');
},
action: function () {
if (this.ready())
this.render('profielBewerken', {
to: 'container',
data: function () { return Meteor.user(); }
});
else
this.render('profielBewerken', {
to: 'container',
data: { loading: true }
});
}
});

它会等到订阅可用,然后在数据可用时再次呈现模板。即使它确实使用数据再次呈现模板,我的 Template.profielBewerken.onRendered(function () { ...}) 回调不会被第二次触发!有谁知道为什么不,是否有解决方案?

我可以复制模板并将其重命名为 profielBewerken2 并进行渲染,但是每次修改模板时我都必须镜像两段代码并再次手动复制它...如果有有更好的选择,请告诉我。

对于那些感兴趣的人,我在初始模板加载中将“加载”类添加到表单(效果参见 http://semantic-ui.com/collections/form.html)。

谢谢!

最佳答案

onRendered only fires when an instance of the template is added to the DOM ,因此它不会在数据更改时再次触发。

如果你想在数据准备好后执行代码,你应该使用 template.autorun像这样的功能:

Template.profielBewerken.onRendered(function () {
this.autorun(function (comp) {
if (Meteor.user()) {
// do some stuff

comp.stop();
}
});
});

关于javascript - meteor :onRendered 在第二次渲染铁路线后不会再次被解雇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com