javascript - Ember : click event on a view not firing

标签 javascript ember.js

我有一个 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 元素(abutton 等)。

如何才能在我的 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);
  }

});

这是一个工作示例:http://jsbin.com/tolod/2/edit?html,js,output

关于javascript - Ember : click event on a view not firing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726413/

相关文章:

javascript - 从 JSON 响应创建 Ember 对象并使用 Handlebars 显示

javascript - DataTable Cell Update 命令仅更新第一页

javascript - 使用 AJAX 请求时还需要 Form 元素吗?

javascript - Mongoose 数组和 Javascript 数组的区别

jquery - Ember – 在滚动到顶部时添加类

javascript - 有什么方法可以延迟在 beforeModel Hook 中触发 Embers 模型?

javascript - ember.js 和服务器

ember.js - Ember 构建失败

javascript - 获取非输入字段,例如表单中的引导日期选择器

javascript - 方法在本地运行良好,部署时不会运行(在meteor.com上)