Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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无法加载Bing地图_Javascript_Bing Maps - Fatal编程技术网

Javascript AngularJS无法加载Bing地图

Javascript AngularJS无法加载Bing地图,javascript,bing-maps,Javascript,Bing Maps,我使用AngularJS显示Bing地图,但错误是“TypeError:无法读取null的属性'prototype'。请看下面 在my Razor视图中,文件具有以下内容: <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script> <script type="text/javascript" src="

我使用AngularJS显示Bing地图,但错误是“TypeError:无法读取null的属性'prototype'。请看下面

在my Razor视图中,文件具有以下内容:

<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
<script type="text/javascript" src="~/lib/angular/angular.min.js"></script>
<script src="~/js/Site.js"></script>
----
----
--
<div ng-app="myDisplayItems">
    <div ng-controller="myDisplayItemsController">
        <div id="myMap"></div>
    </div>
</div>
更新:

var displayItems = angular.module("myDisplayItems", []);
displayItems.controller("myDisplayItemsController", function myDisplayItemsController($scope) {
   $scope.map = null;
   $scope.init = function () {
         $scope.map = showMap();
   };

   angular.element(document).ready(function () {
         $scope.init();
   });
});

显然,这个错误是因为Bing地图库在地图初始化后还没有准备好

没有错误发生,is
showMap
函数在延迟一段时间后被调用(假设Bing Maps库当时已加载),例如:

$timeout(function() { $scope.initMap()}, 2000); 
但我会提出以下解决方案:

注册Bing地图库准备就绪后需要触发的功能,如下所示:

Microsoft.Maps.CallbackOnLoad = "initMap";
并声明
initMap
全局函数:

$window.showMap = function () {
   //...
}
演示

angular.module('mapApp',[]);
有棱角的
.module('mapApp'))
.controller(“地图控制器”,地图控制器);
函数映射控制器($scope$window){
$window.initMap=函数(){
让map=new window.Microsoft.Maps.map(
document.getElementById('myMap'){
凭证:“AjwUEXFZA8SMyy8CaJj59vJKVDoWohNXVFz_uGyHlT8N40Jgr-zrhvcxbTNRyDqn”
});
map.setView({
缩放:6,
中心:新Microsoft.Maps.Location(52.406978607177734,-1.5077600479125977)
});
}
Microsoft.Maps.CallbackOnLoad=“initMap”;
}


感谢您的回复。我需要一段时间才能理解你的意思,因为我还在学习JavaScript、Angular、Bing地图和MVC概念。按照你的建议,我能够显示地图。下一阶段将使用$http调用从MS SQL Server数据库获取经度和纬度。
$window.showMap = function () {
   //...
}