我目前在我的项目中有两个可能的用户,即雇主和候选人。
var User = new Schema({
role:String
});
我的手柄页面上有某些元素,我想隐藏这些元素,具体取决于登录用户。这些元素只是字体很棒的图标和按钮。有没有办法用帮助器或其他东西做这个?或者也许jQuery我不确定,我使用Passport.js作为我的登录系统。
答案 0 :(得分:1)
猜测你渲染页面并注入“用户”变量,这很容易做到。
如果语句为真,您可以使用if语句呈现代码块
I found this link that explains it really well.
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}}
演示:http://jsfiddle.net/ambiguous/d4adQ/
如果你的错误条目不是简单的字符串,那么你可以添加“是 这个消息“标记给他们并使用标准{{#if}}(请注意 直接向字符串添加属性将无法正常工作):
for(var i = 0; i< errors.length; ++ i) errors [i] = {msg:errors [i],is_status:errors [i] ==='some message'};和
{{#if is_status}}
<li>Status</li> {{else}}
<li>{{msg}}</li> {{/if}}
使用Elving的Swag Handlebars helpers library,您可以使用帮助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!
<强>心不是强>
如果条件为假,则有条件地渲染块。的反面 是
参数:
value [string|int] - the value to test against.
用法:
number = 5
{{#isnt number 5}}
Kiss my shiny metal ass!
{{else}}
Never mind :(
{{/isnt}}
=> Never mind :(
答案 1 :(得分:1)
{{#ifeq user.role 'admin'}} this will show only if user is admin {{/ifeq}}
要注意的一点是,只有当角色是字符串类型时才会起作用。