Ember:在未触发的视图上单击事件

时间:2014-03-29 02:53:38

标签: javascript ember.js

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

如何点击li点击?我将所有东西都包装在一个锚中,因为有子元素有自己的事件和动作。

后续问题:即使我点击工作,它似乎只会将当前视图的isSelected属性设置为true,但不会将其余视图属性切换为false。完成这个的提示?

感谢。我是dyin&#39;这里。

1 个答案:

答案 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);
  }

});

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