使用Ember的动作助手,bind-attr是设置CSS样式的唯一方法吗?

时间:2012-07-27 18:51:05

标签: ember.js

通过弃用Ember.Button视图(带有最近的Ember主干版本)支持动作帮助器,有没有办法设置动作助手的父HTML元素的静态/不变的CSS样式(是否该元素是一个按钮,链接等)没有那些静态CSS样式被粘贴/覆盖?也就是说,

  • 使用旧的Ember.Button和#view,我们可以传入类(对于静态CSS样式)和classBinding(对于动态CSS样式),静态样式不受动态样式的影响。
  • 但是使用新的动作助手,classBinding似乎不起作用。 bind-attr确实有效,但是bind-attr class =“foo”规范将覆盖在bind-attr之外为该元素指定的任何CSS类。
  • 因此,我发现使用动作助手在元素上保留静态CSS样式的唯一方法是指定一个字符串属性(在相关的Ember视图中),指定所需的CSS静态样式。例如{{bind-attr class =“App.TheView.isActive App.TheView.cssStyles}}这是不雅/漏洞。

提前感谢任何建议/帮助!

3 个答案:

答案 0 :(得分:8)

您还可以在{{bind-attr}}中混合静态和动态样式,如下所示:

{{bind-attr class=":staticStyle view.someProperty:dynamicStyle}}

答案 1 :(得分:1)

你是如何使用动作助手的?您应该能够为HTML元素提供一个类。

<a {{action "testIt"}} class="test">testing</a>

以下是一个示例:http://jsfiddle.net/A9VZS/

答案 2 :(得分:1)

您现在可以使用内联ifbind-attrdeprecated in 1.13

<div class={{if isUrgent 'is-urgent'}}>

新文档为here