返回介绍

模板 - 绑定元素类名称

发布于 2020-02-21 15:48:02 字数 3452 浏览 1059 评论 0 收藏 0

英文原文:http://emberjs.com/guides/templates/binding-element-class-names/

像其他所有属性一样,HTML元素的class属性也可以被绑定,如下所示:

1
2
3
<div {{bind-attr class="priority"}}>
  Warning!
</div>

如果控制器的priority属性的值是"p4",上面的模板将生成如下的HTML:

1
2
3
<div class="p4">
  Warning!
</div>

绑定布尔值

如果你要绑定的值是布尔类型,Ember.js会将属性名称用中划线连接来作为类的名称:

1
2
3
<div {{bind-attr class="isUrgent"}}>
  Warning!
</div>

如果isUrgent的值为真,上面的模板就会生成下面的HTML:

1
2
3
<div class="is-urgent">
  Warning!
</div>

否则,如果isUrgent是假,就不会添加类:

1
2
3
<div>
  Warning!
</div>

如果你想要显示的提供一个类的名称(而不使用Ember.js自动生成的中划线形式),那么,你可以使用下面的语法:

1
2
3
<div {{bind-attr class="isUrgent:urgent"}}>
  Warning!
</div>

这样就不会产生中划线形式的名称,取而代之的将产生如下的名称:

1
2
3
<div class="urgent">
  Warning!
</div>

你也可以像下面这样显示的指定当一个属性为false时要添加的类的名称:

1
2
3
<div {{bind-attr class="isEnabled:enabled:disabled"}}>
  Warning!
</div>

在上面例子中,如果isEnabled属性的值是true,就会添加enabled类。否则,如果属性值为false,就会添加disabled类。

这种语法也可以用来在属性值为false时添加一个类,而在属性值为true时移除它,所以下面的例子:

1
2
3
<div {{bind-attr class="isEnabled::disabled"}}>
  Warning!
</div>

将会在isEnabledfalse时添加disabled类,而在isEnabledtrue时不添加类。

静态类

如果你想要一个混合了静态类和绑定类的元素,你需要将静态类包含在绑定属性列表中,以:为前缀:

1
2
3
<div {{bind-attr class=":high-priority isUrgent"}}>
  Warning!
</div>

这会直接把high-priority类加到元素中去:

1
2
3
<div class="high-priority is-urgent">
  Warning!
</div>

绑定类名称和静态类名称不能混合在一起。下面的例子就不会起什么作用

1
2
3
<div class="high-priority" {{bind-attr class="isUrgent"}}>
  Warning!
</div>

绑定多个类

与其他元素属性不同的是,你可以绑定多个类:

1
2
3
<div {{bind-attr class="isUrgent priority"}}>
  Warning!
</div>

Ember.js将依次对每个类执行上述准则,从而达到你所想要的效果:

1
2
3
<div class="is-urgent p4">
  Warning!
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文