入门指南 获取Ember 概念 对象模型 应用 模板 路由 组件 控制器 模型 视图 枚举 测式 配置Ember.js COOKBOOK 理解Ember.js

发布于 2015-08-18 16:40:46 | 384 次阅读 | 评论: 0 | 来源: 网络整理

像其他所有属性一样,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>
 
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务