クラスの代わりにスタイルを使用する必要があり$.css
、一度にスタイル文字列の一部のみを変更したい場合、1 つの代替手段として を使用して、必要なスタイルの変更を適用します。例:
<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
の属性を変更しています (この場合、div が 1 つしかないため、要素をセレクターとして使用しています)。これを行うには他にも (おそらくもっと良い) 方法がありますが、これがお役に立てば幸いです。color
SomeView
このソリューションの問題は、style
属性がどのプロパティにもバインドされていないため、属性の状態を維持できないことです。そのため、長期的にはクラスをバインドする方が良いと思います。