templates - Jade模板-动态属性

标签 templates pug

我想为某些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/

相关文章:

c++ - 从迭代器推导出模板函数返回类型的值类型

c++ - 默认初始化模板中的指针

c++ - 创建一个模板来包装 C++ 成员函数并公开为 C 回调

javascript - 在 pug 中将 JSON 作为 javascript 变量传递

javascript - 使用 Express 和 Node 将 json 文件发送到 pug 模板

javascript - 如何在jade中创建一个变量以在node.js中使用

c++ - 简单模板推导错误

c++ - Functor 类在构造函数中工作

javascript - Pug:如何在所有页面中包含 mixin?

node.js - 如何在 Pug 文件中显示数据库中的 "fields"' 值?