angularjs - RangeError:超出最大调用堆栈大小

标签 angularjs

我想这意味着有一个循环引用,但是对于我的一生,我无法猜测如何解决它。

谁有想法?

http://plnkr.co/edit/aNcBcU?p=preview

检查Chrome中的调试控制台(例如),您将看到错误。
冒犯的行是

 scope.map = map;

通过以下方式在 Controller 上对scope.map进行“$ watched”
$scope.$watch("options.map", function (map) { ... }, true);

最佳答案

这是因为您要比较对象是否相等,而不是引用。将您的$watch语句更改为此:

$scope.$watch("options.map", function (map) {
    if (map === undefined) {
        alert("map has no value");
    } else {
        alert("map is defined");
    }
});

关于angularjs - RangeError:超出最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962684/

相关文章:

javascript - AngularJS 一个地方的范围改变应该在另一个地方改变,这如何实现?

javascript - 如何在使用 angular-file-upload 上传多个文件时更改标题参数

javascript - 查看环回模型属性数组是否包含字符串

javascript - 如何在 html Angular 中显示嵌套的 json 元素

javascript - 如何删除值的格式化掩码

angularjs - ui-grid 使用 ng-show/ng-hide 时无法正确渲染,如果在键盘上按 F12 可以正确渲染

javascript - 如果选择自动完成输入,则显示/隐藏 Div

javascript - 如何使 Angular 仅显示可用的数据

angularjs - 在 ng-repeat 和 ng-change 中传递两个值

javascript - 如何绑定(bind)到新的Set和Map对象?