我想这意味着有一个循环引用,但对于我的生活我无法猜测如何解决它.
任何人都有什么想法?
http://plnkr.co/edit/aNcBcU?p=preview
检查Chrome中的调试控制台(例如),您会看到错误.
违规行是
scope.map = map;
scope.map在控制器上被“观看”
$scope.$watch("options.map",function (map) { ... },true);
这是因为您正在比较对象的平等而不是参考.将您的$watch语句更改为:
原文链接:https://www.f2er.com/angularjs/142924.html$scope.$watch("options.map",function (map) { if (map === undefined) { alert("map has no value"); } else { alert("map is defined"); } });