我有一個由Ember.Router創建的控制器,並且這會填充一個表。如何在事件中更新集合中的綁定類
模板:
{{#each key in controller}}
{{#view App.TestView contentBinding="key"}}
<tr {{bindAttr class="view.isSelected"}} {{action selectKey this on="click" target="view" }}>
<td>{{key.id}}</td>
<td><button type="button" class="btn btn-danger" {{action removeKey on="click" target="view"}}>Remove</button></td>
</tr>
{{/view}}
{{/each}}
背後的代碼:
App.TestView = Em.View.extend({
removeKey: function() {
var key = this.get('content');
this.bindingContext.removeObject(key);
return false;
},
selectKey: function (event) {
this.set('theClass', 'warning');
},
theClass: 'selectable',
isSelected: function() {
return this.get('theClass');
}.property('theClass')
});
我期待onclick事件來改變類,以「警告」,併爲集合中的行會以黃色突出顯示(按照css類),但是這不會發生。 isSelected屬性似乎並沒有更新DOM,我不明白爲什麼它不這樣做。
的jsfiddle這裏:http://jsfiddle.net/EsF4R/114/
你可以發佈jsfiddle嗎? – Ryan
好的,[你在這裏](http://jsfiddle.net/EsF4R/114/) – Deif