【问题标题】:Trigger $digest when variable changed by node.js function当 node.js 函数改变变量时触发 $digest
【发布时间】:2014-08-14 23:46:30
【问题描述】:

我想使用 AngularJS 用 node-webkit 制作一个应用程序。 到目前为止没问题,但是当我希望 Angular 使用this answer 中描述的方法来监视“遗留变量”时,我只会得到一个Error: [$rootScope:inprog]

我将我的 node.js 函数包装到 $scope.$apply() 中,如下所示:

$scope.$apply(myNodeModule("test", function(err, res) {
        if (err) {return console.log(err)}
        myLegacyVar = res;
}));

并注意(全局)myLegacyVar 变量,如前面提到的答案中所述:

function () {
            return $window.myLegacyVar
        }, function(n,o){
            console.log("changed ",n);
            $scope.data = n;
        }
);

所有代码都位于我的 Angular 控制器函数中。

该函数是异步的,所以我想这可能与此有关? 还是我在 $apply 中进行的这个函数启动可能会导致我的错误?

我现在一无所知,我最近才开始使用 AngularJS,谷歌搜索的时间还没有走得太远。

【问题讨论】:

    标签: javascript node.js angularjs node-webkit


    【解决方案1】:

    This answer 提供帮助。那里的安全 $apply 函数起到了作用。 我将该函数添加到我的控制器中,并将它添加到我的 node.js 函数中:

    var scope = angular.element($("#angularDOMElement")).scope();
    scope.safeApply(function(){
        myLegacyVar = res;
    })
    

    我不知道这是否是正确的方法,但它的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2020-10-27
      • 2011-09-09
      • 1970-01-01
      相关资源
      最近更新 更多