Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 AngularJs,ngRepeat不工作_Javascript_Html_Angularjs - Fatal编程技术网

Javascript AngularJs,ngRepeat不工作

Javascript AngularJs,ngRepeat不工作,javascript,html,angularjs,Javascript,Html,Angularjs,我正在使用AngularJs。我正在显示带有标记的谷歌地图。单击标记后,我将显示单击的标记详细信息 这是我的Controller.js function createMarker(latitude,longitude,name,address,locationId,sid){ var marker = new google.maps.Marker({ map: $scope.map, position: new google.maps.LatLng

我正在使用AngularJs。我正在显示带有标记的谷歌地图。单击标记后,我将显示单击的标记详细信息

这是我的
Controller.js

  function createMarker(latitude,longitude,name,address,locationId,sid){
      var marker = new google.maps.Marker({
        map: $scope.map,
        position: new google.maps.LatLng(latitude,longitude),
        title: name
        });
       $scope.leadsForMap=[];
       $scope.location={};
       google.maps.event.addListener(marker, 'click', function() {
       $scope.location = {
                name: name,
                sid: sid,
                address: address,
                locationId:locationId
                };
       $scope.leadsForMap.push($scope.location);
       $scope.markers.push(marker);
   }
在html中,我试图循环
$scope.leadsForMap
数组,并像这样单击后显示特定的详细信息

html


{{$index+1}}{{location.name}-{{location.sid},{{location.address}
但即使
$scope.leadsForMap
有值,此div也不会显示。有人能告诉你哪里错了吗?

你需要使用

$scope.$apply()
必须使用
$scope.$apply
当事件超出角度范围时,角度将不会运行摘要循环,因为它超出范围

您需要运行摘要周期,该周期将由$scope.$apply()手动运行

google.maps.event.addListener(标记,'click',函数(){
$scope.location={
姓名:姓名,,
希德:希德,
地址:地址:,
locationId:locationId
};
$scope.leadsForMap.push($scope.location);
$scope.markers.push(marker);
$scope.$apply();
}
您需要使用

$scope.$apply()
必须使用
$scope.$apply
当事件超出角度范围时,角度将不会运行摘要循环,因为它超出范围

您需要运行摘要周期,该周期将由$scope.$apply()手动运行

google.maps.event.addListener(标记,'click',函数(){
$scope.location={
姓名:姓名,,
希德:希德,
地址:地址:,
locationId:locationId
};
$scope.leadsForMap.push($scope.location);
$scope.markers.push(marker);
$scope.$apply();

}
ok如果=“$scope.leadsForMap>0”它的数据ng if=“leadsForMap.length>0”这是错误的对不起。我更新了我的问题我已经更新了我的问题使用div{{{leadsForMap}}来检查你的模型是否正确如果它正确我找不到不显示在ng repeat中的原因我检查了,但它显示的是空数组[]。但如果我将$scope.leadsForMap的控制台放在controller.js中,它显示的是值sok,如果=“$scope.leadsForMap>0”其数据为ng if=“leadsForMap.length>0”,则这是错误的。对不起。我更新了我的问题我更新了我的问题使用div{{leadsForMap}要检查您的模型是否正确,如果它正确,我找不到不显示在ng Repeat中的原因。我已检查,但它显示的是空数组[]。但如果我将$scope.leadsForMap的控制台放在controller.js中,它显示的是添加的值$scope.apply,但显示的是此错误:[$rootScope:inprog]$digest已经在进行中。而div仍然没有显示if(!$scope.$$phase){$scope.$apply();}你能试试这个吗?是的,我添加了,但仍然没有显示div。错误消失了,但html div仍然没有显示我在$scope.leadsForMap.push($scope.location)之后放置if(!$scope.$$phase){$scope.$apply();}的位置;表示在$scope.markers.push(marker)之前。它成功了。非常感谢。我添加了$scope.apply,但是显示了这个错误:[$rootScope:inprog]$digest已经在进行中。而div仍然没有显示if(!$scope.$$phase){$scope.$apply();}你能试试吗?是的,我添加了,但是仍然没有显示div。错误已经消失,但是html div仍然没有显示我放置的if(!$scope.$$phase){$scope.$apply();}在$scope.leadsForMap.push($scope.location)之后,表示在$scope.markers.push(marker);;之前。它起作用了。非常感谢