我想这意味着有一个循环引用,但是对于我的一生,我无法猜测如何解决它。
谁有想法?
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/