2016-06-02 5 views
0

Ich möchte einen Helfer registrieren, den ich in den Vorlagen verwenden kann, um zu überprüfen, ob ein Dokument existiert.Meteor Vorlage Helper, um zu überprüfen, ob ein Dokument existiert

ich überprüfen, ob ein Dokument wie diese

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

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

existiert ich einen Helfer wie diese

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; 
    } 
}); 

zu registrieren versuchen und es so verwenden in meinem tempates

{{#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}} 

aber das funktioniert nicht. Wo gehe ich falsch?

+0

Ihr Code sieht auf den ersten Blick sinnvoll. Kannst du angeben, auf welche Art es "nicht funktioniert"? –

+0

Es stellte sich heraus, es war Chrom Caching einige Bibliothek, die ich für eine längere Zeit verwendet wurde, so Debugging-Fenster Debugging der Cache-Version, die nicht in Verwendung war, aber dennoch das Problem mit der Bibliothek zu verbergen, die ich verwendete . –

Antwort

0

Wenn dies Ihr Problem nicht löst, könnte es ein Problem mit Ihrem Pub/Sub geben.

Sie brauchen keine Begrenzung. Verwenden Sie stattdessen findOne und Sie müssen die Anzahl nicht überprüfen.

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. 

Darüber hinaus, wenn die Benutzer-ID verwenden Sie die aktuelle Benutzer-ID, können Sie Meteor.userId verwenden()

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