Javascript 角度UI$scope.myMap未定义
我正在尝试Javascript 角度UI$scope.myMap未定义,javascript,html,angularjs,angular-ui,Javascript,Html,Angularjs,Angular Ui,我正在尝试$watchmyMap,但它从未启动过。我已经把它缩小到使用了ui if(如果我删除ui if,$scope.myMap是正确的谷歌地图对象)。但是,为了获得uimap,等待AJAX/Db查询完成,我需要保留ui if 为什么没有将myMap添加到范围(以及如何将其添加到范围) 编辑如果创建自己的范围,我会从该ui中看到。那么,我如何访问它的作用域/无论myMap现在位于何处?此外,为什么ui会创建新范围?您可以指定对象的存储位置,包括父范围: ui-map="$parent.myM
$watch
myMap
,但它从未启动过。我已经把它缩小到使用了ui if
(如果我删除ui if,$scope.myMap
是正确的谷歌地图对象)。但是,为了获得uimap
,等待AJAX/Db查询完成,我需要保留ui if
为什么没有将myMap添加到范围(以及如何将其添加到范围)
编辑如果创建自己的范围,我会从该ui中看到。那么,我如何访问它的作用域/无论
myMap
现在位于何处?此外,为什么ui会创建新范围?您可以指定对象的存储位置,包括父范围:
ui-map="$parent.myMap"
尽管这被认为是半不可靠的(因为任何数量的指令都可以创建附加的范围层),您可能需要考虑将其设置为对象的属性。
< P>您可以指定要存储对象的位置,包括父范围:ui-map="$parent.myMap"
尽管这被认为是半不可靠的(因为任何数量的指令都可以创建附加的范围层),您可能需要考虑将其设置为对象的属性。
< P>在您的代码上创建一个模型。GoogLAMAPs<代码>控制器:$scope.model = {};
将模型作为参考传递给ui-map
指令:
ui-map="model.myMap"
注意变化:
$scope.$watch('model.myMap', function(map){
...
}
这样可以避免在ui if
范围内创建myMap
属性
还可以查看此项以了解有关作用域的原型继承的更多信息。在您的
谷歌地图控制器上创建一个模型:
$scope.model = {};
将模型作为参考传递给ui-map
指令:
ui-map="model.myMap"
注意变化:
$scope.$watch('model.myMap', function(map){
...
}
这样可以避免在ui if
范围内创建myMap
属性
另外,请检查此项以了解有关作用域的原型继承的更多信息。Ahah!现在myMap对象可用(locations对象也可用);一切似乎都进行得很顺利,但是标记没有出现在地图上:我尝试检查一个有标记的google map对象与我的进行比较(看看我的map对象是否注册了标记),但我无法确定哪个属性包含标记数据(我想可能是在overlymaptypes
或qc
中。找到了它!而不是设置var latLng=new google.maps.latLng($scope.locations[i][0],$scope.locations[i][1]);
我必须保持每个$scope.locations[i][\
在它自己的参数中,然后运行new google.maps.LatLng
.Ahah!现在myMap对象可用了(locations对象也可用);一切似乎都进行得很顺利,但是标记没有出现在地图上:我试着检查了一个有标记的google map对象,该对象与我的标记进行比较(查看我的map对象是否已注册它们),但我无法确定哪个属性包含标记数据(我想它可能位于OverlyMapTypes
或qc
。找到了!而不是设置var latLng=new google.maps.latLng($scope.locations[I][0],$scope.locations[I][1])
我必须将每个$scope.locations[I][#]
保存在自己的参数中,然后运行新的google.maps.LatLng
.ohh,这很好(我可以指定以这种方式将其存储在父作用域中)。谢谢!我想我更喜欢将其设置为对象的属性。@b莱特的答案似乎正是如此,但奇怪的是,标记没有出现在地图上。哦,知道这一点很好(我可以指定以这种方式将其存储在父作用域上)。谢谢!我想我更喜欢将其设置为对象的属性。@B莱特的回答似乎正是如此,但奇怪的是,标记没有出现在地图上。