我有一个 race-item
列表,每个都呈现为一个 View :
<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>
在 View 类中,我想使用单击事件来切换属性:
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
上触发点击?我将所有内容都包裹在 anchor 中,因为子元素有自己的事件和操作。
后续问题:似乎即使我的点击正常工作,它也只会将当前 View 的 isSelected
属性设置为 true,而不会将其余 View 属性切换为 false。实现这一目标的技巧?
谢谢。我快死在这里了。
最佳答案
点击事件应该适用于所有元素,包括 li。有多种方法可以实现您所寻找的目标:一种是将事件发送到 Controller :
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);
}
});
关于javascript - Ember : click event on a view not firing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726413/