2016-04-06 5 views
0

Когда пользователь is_admin просматривает профиль другого пользователя, я хочу иметь возможность управлять типом информации, отображаемой на основе ролей профилей пользователей. Мой код ниже ничего не показывает, что я делаю неправильно?Отображать содержимое на основе ролей

Путь: 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; 
     } 
    } 
}); 

Путь: adminView.html

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

У вас есть pub-sub, который публикует пользователя, заданного 'id'? –

+0

Да. Если я удалю '{{#if userRole}} , отобразите пользователя {{/ if}}' правильный пользователь опубликован. Вы хотите, чтобы я обновил свой код в публикации. – bp123

+0

Нет, это нормально. Я думаю, что я вижу проблему - это не 'role' массив? –

ответ

3

Поскольку roles массив вы должны проверить наличие значения в массиве, а не равенство:

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

Как всегда, ваше решение работало как шарм! благодаря – bp123

Смежные вопросы