我有一个由 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/