用于检查文档是否存在的Meteor模板助手

时间:2016-06-02 04:48:24

标签: meteor handlebars.js meteor-blaze

我想注册一个帮助程序,我可以在模板中使用它来检查文档是否存在。

我检查文件是否存在,如此

var selector = {
    userid: "3R2pKdT3x9PjWLsD8",
};;

var this_exists = Af.find(selector, {limit: 1}).count() > 0;

我正在尝试注册这样的帮助

Template.registerHelper('ex', function() {
    var selector = {
        userid: "3R2pKdT3x9PjWLsD8",
    };

    var this_exists = Af.find(selector, {limit: 1}).count() > 0;

    if(this_exists == true) {
        return true;
    } else {
        return false;
    }
});

并在我的诱惑中使用它

{{#if ex}}
    {{> quickForm collection="Af" doc=cdoc id="updateSettings" omitFields="userid" class="settings" type="update" buttonContent="Update Settings"}}
{{else}}
    {{> quickForm collection="Af" doc=this id="updateSettings" omitFields="userid" class="settings" type="insert" buttonContent="Insert Settings"}}
{{/if}}

但这不起作用。我哪里错了?。

1 个答案:

答案 0 :(得分:0)

如果这不能解决您的问题,那么您的发布/订阅可能会出现问题。

您不需要限制。而是使用findOne,您无需检查计数。

var exists = Af.findOne({userId: "3R2pKdT3x9PjWLsD8"}); //be careful with userId here, as it might be userid in your codes. 

If(exists){
    return true;
} //we don't need else block here. Your html if else block will work fine with this.

此外,如果您使用的userId是当前用户的id,则可以使用Meteor.userId()

var exists = Af.findOne({userId: Meteor.userId()});