javascript - Angular-UI $scope.myMap 未定义

标签 javascript html angularjs angular-ui

我正在尝试 $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/

相关文章:

jquery - 使用 jQuery 选择和影响 div 中的元素

php - MySQL 和 PHP - 计算数据库中产品的价格

javascript - Angular 父范围变量未更改

javascript - react axios.get 不工作它说编译失败

php - 从 Analytics 中隐藏 Javascript 文件

jquery - 使用 jQuery 将 div 包装到包装器 div 中

javascript - 如何在 AngularJS 中格式化输入中的数字

javascript - 如何使用 marionette 嵌套布局 View ?

JavaScript assoc 数组添加键值对意外结果

javascript - 如何更改 iframe 谷歌地图的坐标以根据传递的坐标打印不同的结果