根据用户角色隐藏带把手的元素

问题描述 投票:2回答:2

我目前在我的项目中有两个可能的用户,即雇主和候选人。

var User = new Schema({
    role:String
});

我的把手页面上有一些我想隐藏的元素,具体取决于登录用户。这些元素只是字体很棒的图标和按钮。有没有办法用帮助器或其他东西做这个?或者也许jQuery我不确定,我使用Passport.js作为我的登录系统。

jquery node.js handlebars.js passport.js roles
2个回答
1
投票

猜测你渲染页面并注入“用户”变量,这很容易做到。

如果语句为true,则可以使用if语句呈现代码块

I found this link that explains it really well.


First option

Here's a complete answer that should help you do what you want to do.(这是它说:)。

最简单的方法是添加一个自定义的if_eq帮助器:

Handlebars.registerHelper('if_eq', function(a, b, opts) {
    if(a == b) // Or === depending on your needs
        return opts.fn(this);
    else
        return opts.inverse(this); }); and then adjust your template:

{{#if_eq this "some message"}}
    ... {{else}}
    ... {{/if_eq}} 

但是:ぁzxswい

如果您的错误条目不是简单的字符串,那么您可以向它们添加“这是一些消息”标志并使用标准{{#if}}(请注意,直接向字符串添加属性将无法正常工作):

for(var i = 0; i <errors.length; ++ i)errors [i] = {msg:errors [i],is_status:errors [i] ==='some message'};和:

http://jsfiddle.net/ambiguous/d4adQ/

但是:ぁzxswい


Second option

使用Elving的{{#if is_status}} <li>Status</li> {{else}} <li>{{msg}}</li> {{/if}} ,你可以使用助手http://jsfiddle.net/ambiguous/9sFm7/Swag Handlebars helpers library。单击文档的链接

Two examples

如果条件为真,则有条件地渲染块。

参数:

is

用法:

isnt

心不是

如果条件为假,则有条件地渲染块。相反的是。

参数:

value [string|int] - the value to test against.

用法:

number = 5

{{#is number 5}}
    Kiss my shiny metal ass!
{{else}}
    Never mind :(
{{/is}}

=> Kiss my shiny metal ass!

1
投票
value [string|int] - the value to test against.

要记住这一点,只有当角色是字符串时才会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.