2016-04-06 19 views
0

Wenn ein Benutzer von is_admin das Profil eines anderen Benutzers anschaut, möchte ich den Informationstyp steuern können, der basierend auf den Benutzerprofilrollen angezeigt wird. Mein Code unten zeigt nichts an, was mache ich falsch?Inhalt basierend auf Rollen anzeigen

Pfad: adminView.js

Template.adminView.helpers({ 
    profile:()=> { 
     var id = FlowRouter.getParam('id'); 

     return Meteor.users.findOne({_id: id}); 
    }, 
    userRole: function() { 
     var roles = this.roles; 

     if (roles === "is_student") { 
      return true; 
     } 
    } 
}); 

Pfad: adminView.html

{{#with profile}} 
    {{#if userRole}} 
     display user 
    {{/if}} 
{{/with}} 
+0

Haben Sie ein Pub-Sub, das den von 'id' angegebenen Benutzer veröffentlicht? –

+0

Ja. Wenn ich '{{#if userRole}} Benutzer {{/ if}} entfernen, wird der richtige Benutzer veröffentlicht. Wollte, dass ich meinen Code mit der Veröffentlichung aktualisiere. – bp123

+0

Nein, das ist in Ordnung. Ich denke, ich sehe das Problem - ist nicht "Rollen" ein Array? –

Antwort

3

Seit roles ist ein Array Sie auf die Existenz des Wertes im Array zu überprüfen, nicht Gleichheit:

userRole: function() { 
    var roles = this.roles; 
    return (roles.indexOf("is_student") > -1); 
} 
+0

Wie immer hat Ihre Lösung funktioniert wie ein Charme! Vielen Dank – bp123

Verwandte Themen