2014-10-30 46 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);