首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jade模板-动态属性

Jade模板-动态属性
EN

Stack Overflow用户
提问于 2012-11-28 04:37:05
回答 3查看 13.5K关注 0票数 20

我想为一些html元素动态创建属性。

在我的例子中,我想根据user.role设置(或不设置) disabled属性。

因此,如果user有编辑某些字段的权限,我不想在元素上添加disabled属性。否则,我真的想要它。

我知道我可以用这些方法做到这一点:

-方法1-使用条件

代码语言:javascript
复制
if (user.role === 1)
   input(type='text', name='foo')
else
   input(type='text', name='foo', disabled)

-方法2-纯HTML

代码语言:javascript
复制
- var disabledAttr = (user.role === 1) ? "disabled" : "";
| <input type="text" name="foo" #{ disabledAttr} />

方法1很糟糕,因为我需要重复一些代码。使用方法2,我不需要重复代码,但我必须使用普通HTML而不是Jade标记。

我尝试了这样的东西:

代码语言:javascript
复制
input(type='text', name='foo', #{ disabledAttr} )

但jade会生成以下代码:

代码语言:javascript
复制
<input type="text" name="foo" disabledattr="" />

还有更好的主意吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-29 05:10:05

当Jade需要弄清楚如何呈现属性时,它非常聪明。您可以使用以下一行jade标记呈现您的disabled属性

代码语言:javascript
复制
input(type='text', name='foo', disabled=role!==1)
票数 32
EN

Stack Overflow用户

发布于 2015-10-15 01:12:27

您可以以有条件的方式使用一组属性:

代码语言:javascript
复制
input(type='text')&attributes(user.role === 1 ? {'disabled': 'true'} : {'class': 'admin', 'ng-model': 'vm.model.name', 'ng-click': 'vm.click()'})
票数 8
EN

Stack Overflow用户

发布于 2014-05-29 15:24:24

此语法适用于我:

代码语言:javascript
复制
input(placeholder!="<%= translate('Add new item') %>")

其中,translate是返回已翻译文本的函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13592592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档