2

selectionDidChangeEmber.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 に答える