Ember.Select selectionBinding在加载视图时触发

时间:2012-07-23 13:37:37

标签: javascript ember.js

我为我的Ember.Select添加了selectionDidChange事件,但是当我的视图加载时,它会在加载时触发所有可用下拉选项的事件。原因是它在内部添加选项到下拉菜单和继续发射selectionDidChange事件....有没有办法让我可以停止初始事件发射

这是我的代码(测试代码)

App = Em.Application.create();
App.myView = Em.View.extend({
  templateName: 'myTemplate',
  myArr:[{category:"spend"},{category:"cashflow"}],
  selectedItem: '',
  dropDownView: Ember.Select.extend({
     contentBinding: 'parentView.myArr',
     selectionBinding: 'parentView.selectedItem',
     optionLabelPath: 'content.category'
     selectionDidChange: function(){
       alert("yes it changed");
     }
  })
}); 

我相应的Handlebar(myTemplate.handlebars)文件     {{view.dropDownView}}

现在,当我加载此视图时,它甚至在我在下拉列表中选择任何选项之前都会发出警告...

额外信息:我需要此功能,因为我正在使用RaphaelJS开发小部件,因此当我更改下拉选项时,我希望更改小部件。

1 个答案:

答案 0 :(得分:4)

selectionDidChange中添加didInsertElement功能:

dropDownView: Ember.Select.extend({
    didInsertElement: function(){
        this.set('selectionDidChange', function(){
            alert("yes it changed");
        });
    },
    contentBinding: 'parentView.myArr',
    selectionBinding: 'parentView.selectedItem',
    optionLabelPath: 'content.category'
})