我正在尝试 $watch
myMap
但它从未触发。我已将范围缩小到使用了 ui-if(如果我删除 ui-if,则 $scope.myMap 是正确的谷歌地图对象)。但是,我需要保留 ui-if 以便让 ui-map
等待我的 AJAX/Db 查询完成。
为什么 myMap 没有添加到范围中(以及如何将其添加到范围中)?
<强> Plunker
编辑我从 this GitHub issue 看到ui-if 创建了自己的范围。那么我如何访问它的范围/无论 myMap
现在所在的位置?另外,为什么 ui-if 创建一个新的作用域?
最佳答案
在 GoogleMaps
Controller 上创建模型:
$scope.model = {};
将模型作为对 ui-map
指令的引用传递:
ui-map="model.myMap"
注意变化:
$scope.$watch('model.myMap', function(map){
...
}
这样您就可以避免在 ui-if
范围内创建 myMap
属性。
另请检查此 documentation有关范围的原型(prototype)继承的更多信息。
关于javascript - Angular-UI $scope.myMap 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616337/