2016-05-02 11 views
-1

Also habe ich ein neues Feld in MongoDB für Benutzer erstellt. "Mortal" ist für Benutzer und "Supermen" für Admin. Ich möchte eine Vorlage erstellen, die ich mehrmals verwenden kann. So sollte Vorlage so etwas wie "Okay, Ihr Feld ist" Supermen ", so dass Sie dieses Zeug sehen und verwenden können". Ich habe versucht, mit diesem Helfer:Wie mache ich einen Helfer wie {{# if currentUser}} in Meteor?

if (Meteor.isClient) { 
 

 
\t Template.obrišiDugme.events({ 
 
    'click .obriši': function() { 
 
     Predlozi.remove(this._id); 
 
    } 
 
\t }); 
 
    
 

 
Template.obrišiDugme.helpers({ 
 
    YouShallNotPass: function() { 
 
    \t if (Meteor.userId().profile.level = supermen) { return true; } 
 
    } 
 
}); 
 
    
 
    };
{{#if YouShallNotPass}} 
 
       {{> obrišiDugme}} 
 
{{/if}}

Danke für Ihre Hilfe !!!

Antwort

0
Template.body.helpers({ 
    YouShallNotPass: function() { 
    // Use Meteor.user() to get the user docuemnt. 
    var user = Meteor.user(); 

    // Guard against the user not being defined or not having a profile. 
    var level = user && user.profile && user.profile.level; 

    // Return true if the user's level is equal to the string 'supermen' 
    return level === 'supermen'; 
    }, 
}); 

Beachten Sie, dass Sie auch schreibt mit diesem an den Benutzer Sammlung verweigern müssen:

Meteor.users.deny({ 
    update: function() { 
    return true; 
    } 
}); 

den ersten Abschnitt von common mistakes See.


Als Alternative dazu kann man bei dem roles Paket suchen.

+0

Das hat mir nicht geholfen:/ –

+0

Können Sie genauer? Gibt es einen Fehler? –

+0

Nein, kein Fehler, aber ich kann Knopf ({{> obrišiDugme}}) weder von Übermenschen noch von Sterblichen sehen –

0

Was Sie wollen, ist Template.registerHelper zu verwenden, die eine Vorlage Hilfsfunktion registrieren wird, die überall dort eingesetzt werden können, wie currentUser

Template.registerHelper('mortal', function(){ 
    return Meteor.userId().profile.level === 'mortal'; 
}); 

Template.registerHelper('supermen', function(){ 
    return Meteor.userId().profile.level === 'supermen' 
}); 

dann auf einer HTML können Sie es wie currentUser:

<tempalte name='demoTemplate'> 
    {{#if mortal}} 
     <h1>Is a mortal !</h1> 
    {{/if}} 
</tempalte> 
+0

Ich versuche das jetzt, aber ich habe langsamen PC (committing auf GitHub auch: D) –

+0

Kann {{#if supermen}} nur innerhalb der Vorlage verwendet werden oder ich kann es auch in index html verwenden? ({{#if supermen}} {{> obrišiDugme}} {{/ if}}) –

+0

Hat mir nicht geholfen:/ –

Verwandte Themen