2

selectionDidChange为我的 Ember.Select 添加了事件,但是当我的视图加载时,它会在加载时为所有可用的下拉选项触发事件。原因是它在内部向下拉菜单添加选项并不断触发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 开发小部件时,我需要此功能,因此当我更改下拉选项时,我希望小部件更改。

4

1 回答 1

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'
})
于 2012-07-23T13:45:31.880 回答