我有一个race-item
的列表,每个都呈现为一个视图:
<ul>
{{#each race in controller}}
{{render "race-item" race class="race-item"}}
{{else}}
<li id="imagine">{{#link-to 'races.create'}}Imagine Faster{{/link-to}}</li>
{{/each}}
</ul>
在视图类中,我想使用click事件来切换属性:
App.RaceItemView = Ember.View.extend({
tagName: 'li',
templateName: 'raceItem',
classNameBindings: ['isSelected:selected'],
isSelected: false,
click: function(e) {
this.set('isSelected', true);
}
});
这个点击事件似乎不会触发,除非它是一个通常处理点击的DOM元素(a
,button
等。)。
如何点击li
点击?我将所有东西都包装在一个锚中,因为有子元素有自己的事件和动作。
后续问题:即使我点击工作,它似乎只会将当前视图的isSelected
属性设置为true,但不会将其余视图属性切换为false。完成这个的提示?
感谢。我是dyin&#39;这里。
答案 0 :(得分:0)
Click事件应适用于所有元素,包括li。有很多方法可以实现您的目标:一种是向控制器发送事件:
App.ItemView = Ember.View.extend({
tagName: 'li',
templateName: 'item-view',
classNameBindings: ['isSelected:selected'],
isSelected: false,
click: function(e) {
this.set('isSelected',true);
this.get('controller').send('itemSelected', this);
}
});