Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度UI$scope.myMap未定义_Javascript_Html_Angularjs_Angular Ui - Fatal编程技术网

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莱特的回答似乎正是如此,但奇怪的是,标记没有出现在地图上。