2014-10-30 48 views
0

我試圖修改fa-pipe-to上的eventHandler以控制器但修改不起作用。如何動態更改Famo.us/Angular fa-pipe中的eventHandler爲

在我看來,我有一個帶有曲面循環的'scroll-view'。

每個表面管道的事件處理程序。

<fa-scroll-view  fa-pipe-from="scrollEventHandler"> 
    <fa-view ng-repeat="tile in tiles"> 
     <fa-modifier fa-transform="tile.transform"> 
      <fa-container-surface fa-pipe-to="tile.eventHandler"> 
       <fa-modifier fa-opacity="tile.opacity"> 
        <fa-surface fa-background-color="tile.color"/> 
       </fa-modifier> 
      </fa-container-surface> 
     </fa-modifier> 
    </fa-view> 
</fa-scroll-view> 

在我的控制,我有2個事件處理的對象:

function Object() { 

    this.eventHandler = null; 

    $scope.scrollEventHandler = new EventHandler(); 
    var dragEventHandler = new GenericSync(); 

    var activateDragMode = function() { 
     this.eventHandler = dragEventHandler; 
    } 
} 

默認情況下,我用scrollEventHandler和它的作品:

this.eventHandler = $scope.scrollEventHandler; 

但在執行過程中,我想切換到其他事件處理者:

activateDragMode(); 

所以我的問題是:當我將新的eventHandler設置爲'eventHandler'變量時,eventHandler未更新。

有沒有人有解決方案嗎?

回答

0

OK,我發現我的錯誤:

當我調試'activateDragMode()函數,我看得出來,「this.eventHandler」是不確定的,而「這個」不是我的目標,但爲事件處理程序。

eventHandler

所以,我加入.bind(本)我的功能,我的對象和everyting的內容結合正在好:

var activateDragMode = function() { 
    this.eventHandler = dragEventHandler; 
}.bind(this);