我试图在我的控制器中修改fa-pipe-to上的eventHandler但是修改不起作用。
在我看来,我有一个滚动视图'表面循环。
每个表面管道都有一个事件处理程序。
<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个eventHandlers的对象:
function Object() {
this.eventHandler = null;
$scope.scrollEventHandler = new EventHandler();
var dragEventHandler = new GenericSync();
var activateDragMode = function() {
this.eventHandler = dragEventHandler;
}
}
默认情况下,我使用scrollEventHandler,它可以工作:
this.eventHandler = $scope.scrollEventHandler;
但在执行期间我想切换到其他eventHandler:
activateDragMode();
所以我的问题是:当我将新的eventHandler设置为&#39; eventHandler&#39;变量,eventHandler未更新。
有没有人有解决方案呢?
答案 0 :(得分:0)
好的,我发现了我的错误:
当我调试'activateDragMode()'函数时,我可以看到'this.eventHandler'未定义,'this'不是我的Object而是EventHandler。
所以,我将 .bind(this)添加到我的函数中以绑定我的对象的内容,并且每个工作都很好:
var activateDragMode = function() {
this.eventHandler = dragEventHandler;
}.bind(this);