2012-12-09 45 views
0

我找不到使用Ember的自定義事件傳遞參數的方法,我發現here。 我更喜歡避免專門針對「父」視圖的解決方案,例如this one,因爲我們失去了「冒泡」。在Ember的自定義事件中傳遞參數(通過查看層次結構中的泡泡)?

我的用法如下

plugins.js

Em.Object.reopen({ 
    triggerEvent: function (eventName) { 
     this.$().trigger(eventName, this); 
    } 
}); 

MyView.js

點擊:函數(){

this.triggerEvent('stepClicked'); 

}

在灰燼中的代碼(0.96+)示出了通過附加的params爲認爲是一個管理器,這是不預先在

rootElement.delegate('.ember-view', event + '.ember', function(evt, triggeringManager) { 
    ... 
    if (manager && manager !== triggeringManager) { 
      result = self._dispatchEvent(manager, evt, eventName, view); 
    } else if (view) { 
      result = self._bubbleEvent(view,evt,eventName); 
    } 

超級感謝通過,
奧倫魯賓

回答

0

你可以傳遞一個事件對象,它會告訴你什麼元素被點擊:

click: function(event){  
    // will be called when when an instance's  
    // rendered element is clicked 
    console.log("element clicked: " + this.get('elementId')); 
    return false; // return true if you want the click event to bubble up to parent view (default it true) 
} 

我認爲一個更好的方法是在您的模板中使用{{action}}。以this answer爲例。

相關問題