如果您必须使用样式而不是类,并且当时只想更改样式字符串的一部分,那么一种替代方法是使用$.css
,应用您想要的样式更改。例如:
<script type="text/x-handlebars">
<h1>App</h1>
{{view App.SomeView}}
</script>
<script type="text/x-handlebars" data-template-name="some-view">
<div style="color:#00F;text-align:left">
Some View<br />
<button {{action changeColor on="click"}}>Change Color</button>
</div>
</script>
<script type="text/javascript">
App = Em.Application.create();
App.SomeView = Em.View.extend({
templateName: 'some-view',
changeColor: function(e) {
console.log('changing color');
this.$('div').css('color', '#F00');
}
});
</script>
在上面的脚本中,我使用 jQuery 的css
函数来更改color
属性,无论我的选择器从SomeView
实例中返回什么元素(在这种情况下,因为我只有一个 div,所以我使用该元素作为选择器)。还有其他(可能更好)的方法可以做到这一点,但我希望这会有所帮助。
这个解决方案的问题在于,你不能保持style
属性的状态,因为它没有绑定到任何属性,这就是为什么我认为从长远来看绑定类会更好。