当重新加载角度部分时,$ apply不起作用

时间:2016-06-04 15:12:59

标签: javascript angularjs datamaps

我正在处理包含datamaps,angularJS和Javascript的代码。我正在使用工厂来传达两个控制器之间的事件。

工厂如下

abc.factory('EventFactory', function () {
return { eventData: ''};   });

在一个控制器的主页部分,我正在更新工厂数据,如下所示

.on('mouseover', function () {
        $scope.$apply(function () {
            $scope.EventFactory.eventData = 'mouseover';
        });
    })

同样,我正在更改mouseout和click事件的值

在另一个控制器上,我正在检测这样的改变

$scope.$watch('EventFactory.eventData', function (data) {
    if (data == 'mouseover') {
        //print on console let's say
    }
}, false);

鼠标输出和点击的类似句柄。

一切正常,每个事件都被检测到。但问题是,当我通过点击然后返回到主页的相同部分来转到其他部分时,$ apply函数不适用于任何事件。所以$ watch也无法检测到其他控制器的变化。

我尝试在$ apply函数中登录控制台但是,$ scope。$ apply函数没有运行,这在第一次加载部分时运行得很好。

这看起来很奇怪,任何想法可能是什么问题? 提前谢谢。

0 个答案:

没有答案