0
我似乎在我的应用程序中遇到了一个阻碍,导致浏览器进入一个永无止境的非常紧密的循环。Handlebars功能导致代码中出现严密的循环
在应用程序中,我在路径上有一个卸载函数,该函数递增一个值来计算并显示项目被查看的次数。
unload: function() {
var project = projectDocs.findOne(this.params._id);
// need to increment views value by one
projectDocs.update(project._id,
{$inc: {views: 1}}
);
}
});
这很好,直到我尝试启用基于用户角色(使用角色包)的窗体上的按钮。启用按钮的代码如下(仅在div中)。
<a href="{{pathFor 'home'}}" class="btn btn-success {{#unless canQuote}} disabled {{/unless}}">Quote</a>
的canQuote助手是
Template.projectPage.helpers({
canQuote: function(){
return Roles.userIsInRole(this.userId, ['tradie','admin'])
},
isOwner: function(){
return this.userId == Meteor.userId();
}
});
,直到一个用户登录的所有工作正常,按钮被禁用,一切都很好。当用户使用适当的角色登录时,页面只是简单地挂起来试图显示,而查看的计数只是在某个地方非常紧密的循环中上升。
有人可以给我一个线索为什么这是循环?
Ta
Peter。
谢谢你,这是解决了一些问题。我不能使用after hook,因为即使使用上面的代码也会生成一个循环,并且我在使用wait函数登录用户时仍然有用,并且永远不会结束我想(我只是最终显示加载模板(我把代码放进去了,但是注释不会) –
好了,原来这是一个问题的组合,我没有理解Meteor.Roles包,正如陆地所指出的那样, findOne。谢谢。 –