我想为一些html元素动态创建属性。
在我的例子中,我想根据user.role
设置(或不设置) disabled属性。
因此,如果user
有编辑某些字段的权限,我不想在元素上添加disabled属性。否则,我真的想要它。
我知道我可以用这些方法做到这一点:
-方法1-使用条件
if (user.role === 1)
input(type='text', name='foo')
else
input(type='text', name='foo', disabled)
-方法2-纯HTML
- var disabledAttr = (user.role === 1) ? "disabled" : "";
| <input type="text" name="foo" #{ disabledAttr} />
方法1很糟糕,因为我需要重复一些代码。使用方法2,我不需要重复代码,但我必须使用普通HTML而不是Jade标记。
我尝试了这样的东西:
input(type='text', name='foo', #{ disabledAttr} )
但jade会生成以下代码:
<input type="text" name="foo" disabledattr="" />
还有更好的主意吗?
发布于 2012-11-29 05:10:05
当Jade需要弄清楚如何呈现属性时,它非常聪明。您可以使用以下一行jade标记呈现您的disabled属性
input(type='text', name='foo', disabled=role!==1)
发布于 2015-10-15 01:12:27
您可以以有条件的方式使用一组属性:
input(type='text')&attributes(user.role === 1 ? {'disabled': 'true'} : {'class': 'admin', 'ng-model': 'vm.model.name', 'ng-click': 'vm.click()'})
发布于 2014-05-29 15:24:24
此语法适用于我:
input(placeholder!="<%= translate('Add new item') %>")
其中,translate是返回已翻译文本的函数。
https://stackoverflow.com/questions/13592592
复制相似问题