国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angular.js - 用angularjs的service封裝百度地圖api出錯(cuò),請(qǐng)問原因?
我想大聲告訴你
我想大聲告訴你 2017-05-15 16:51:38
0
1
616

我想用如下方式引入百度地圖服務(wù),請(qǐng)問為什么出錯(cuò)?

angular.module('bmap',[])
    .factory('bmapService', ['$document', '$q', '$rootScope',
        function($document, $q, $rootScope) {
            var map = $q.defer();
            function onScriptLoad() {
                // Load client in the browser
                $rootScope.$apply(function() { map.resolve(window.bmap); });
            }
            // Create a script tag with d3 as the source
            // and call our onScriptLoad callback when it
            // has been loaded
            var scriptTag = $document[0].createElement('script');
            scriptTag.type = 'text/javascript';
            scriptTag.async = true;
            scriptTag.src = 'http://api.map.baidu.com/api?type=quick&ak=XXXX&v=1.0';
            scriptTag.onreadystatechange = function () {
                if (this.readyState == 'complete') onScriptLoad();
            };
            scriptTag.onload = onScriptLoad;

            var s = $document[0].getElementsByTagName('body')[0];
            s.appendChild(scriptTag);

            return {
                bmap: function() { return map.promise; }
            };
        }]);

使用地圖服務(wù)(app依賴項(xiàng)已包含bmap,以下代碼為使用服務(wù)的controller)

app.controller('backup',function($rootScope,bmapService){
    $rootScope.gotoBackup();
    map = new bmapService.bmap()
        .BMap.Map('map');
})

百度給出的使用示例:

<!DOCTYPE html>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  
<style type="text/css">  
body, html,#l-map {width: 100%;height: 100%;overflow: hidden;margin:0;}  
</style>  
<script type="text/javascript" src="http://api.map.baidu.com/api?type=quick&ak=您的密鑰&v=1.0"></script>  
<title>顯示地圖</title>  
</head>  
<body>  
<p id="l-map"></p>  
</body>
</html>  
<script type="text/javascript">  
var map = new BMap.Map("l-map");  
map.centerAndZoom(new BMap.Point(116.404, 39.915), 14);  
</script>
我想大聲告訴你
我想大聲告訴你

全部回復(fù)(1)
小葫蘆

你的bmapService.bmap()返回的是一個(gè)promise對(duì)象,你要對(duì)promise對(duì)象使用then(function(){}),在回調(diào)方法中才能使用加載完成的地圖API

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板