我正在尝试,$watch
myMap
但它永远不会触发。我已经把它缩小到使用过ui-if
(如果我删除了 ui-if,$scope.myMap
是正确的谷歌地图对象)。但是我需要保留 ui-if 以便ui-map
等待我的 AJAX/Db 查询完成。
为什么 myMap 没有被添加到范围中(以及如何获得它)?
编辑我从这个 GitHub 问题中看到 ui-if 创建了自己的范围。那么我如何访问它的范围/myMap
现在住在哪里?另外,为什么 ui-if 创建一个新的范围?
我正在尝试,$watch
myMap
但它永远不会触发。我已经把它缩小到使用过ui-if
(如果我删除了 ui-if,$scope.myMap
是正确的谷歌地图对象)。但是我需要保留 ui-if 以便ui-map
等待我的 AJAX/Db 查询完成。
为什么 myMap 没有被添加到范围中(以及如何获得它)?
编辑我从这个 GitHub 问题中看到 ui-if 创建了自己的范围。那么我如何访问它的范围/myMap
现在住在哪里?另外,为什么 ui-if 创建一个新的范围?
您可以指定要存储对象的位置,包括父范围:
ui-map="$parent.myMap"
尽管这被认为是半不可靠的(因为任何数量的指令都可能创建额外的范围层)并且您可能需要考虑将其设置为对象的属性。
GoogleMaps
在控制器上创建模型:
$scope.model = {};
ui-map
将模型作为对指令的引用传递:
ui-map="model.myMap"
注意变化:
$scope.$watch('model.myMap', function(map){
...
}
这样可以避免在范围myMap
内创建属性ui-if
。
另请查看此文档以获取有关范围原型继承的更多信息。