我想为某些html元素动态创建属性。
就我而言,我想根据user.role
设置(或不设置)禁用的属性。
因此,如果user
有权编辑某些字段,则我不想在元素上放置禁用的属性。否则,我确实想要它。
我知道我可以使用以下方法做到这一点:
-方法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="" />
有更好的主意吗?
最佳答案
Jade需要弄清楚如何渲染属性时非常聪明。您可以使用这一行 Jade 标记来呈现禁用的属性
input(type='text', name='foo', disabled=role!==1)
关于templates - Jade模板-动态属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13592592/