当变量被node.js函数改变时触发$digest
Trigger $digest when variable changed by node.js function
我想用AngularJS做一个node-webkit应用。到目前为止还没有问题,但是当我想让Angular使用这个答案中描述的方法来监视一个"遗留变量"时,我只得到一个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,几个小时的谷歌还没有得到我的很远。
这个回答很有帮助。安全的$apply函数完成了这个任务。我将这个函数添加到控制器中并将这个片段添加到node.js函数中:
var scope = angular.element($("#angularDOMElement")).scope();
scope.safeApply(function(){
myLegacyVar = res;
})
我不知道这样做是否正确,但它是有效的。
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jQuery:当屏幕大小改变时,如何更改默认图像和悬停图像
- 为什么使用immutableJS我的状态没有改变
- JavaScript改变了双方的显示风格
- 改变所有<td>为特定的桌子点击颜色
- 变量dos'即使我可以返回更新后的值,也不会改变
- jQuery更改变量值
- 爆米花改变来源
- innerHTML赢得't改变元素
- Javascript onclick更改变量值
- "改变“;列表头,然后继续处理列表
- 是否可以使用“;document.all”;在IE11中,而不改变每次使用
- 当偏移量改变时滚动顶部
- 如何用jquery动画改变背景颜色,就像一个过渡
- 用咕哝的任务改变恒定的角度内容
- 如何改变“;尺寸“;单击选择时的选择
- 在按钮改变高度后使标题保持不变
- 如何改变<仪表>价值观
- .show()不会改变效果或方向
- 当变量被node.js函数改变时触发$digest