我为我的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开发小部件,因此当我更改下拉选项时,我希望更改小部件。
答案 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'
})