2014-04-06 55 views
0

我試圖在angularjs應用程序中添加polymaps映射。Polymaps和Angularjs

TypeError: Object [object Object] has no method 'setAttribute' 
at Object.a.container (http://localhost:8000/lib/polymaps.min.js:15:341) 
at new <anonymous> (http://localhost:8000/js/controllers.js:22:4) 
at d (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:33:335) 
at Object.instantiate 
(http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:33:464) 
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:65:486 
at link (http://localhost:8000/lib/angular-route.min.js:7:248) 
at J (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:52:492) 
at h (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:46:28) 
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:45:200 
at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js:46:431 <div ng-view="" class="ng-scope"> 

Javascript無法在我的角度視圖內的元素上設置屬性?

我的HTML看起來像這樣:

<article class="dashboard container"> 
    <div id="map"></div> 
</article> 

的基本polymaps代碼:

var po = org.polymaps; 

var map = po.map() 
    .container(document.getElementById("map").appendChild(po.svg("svg"))) 
    .add(po.interact()) 
    .add(po.hash()); 
    .add(po.image().url(
     po.url("http://{S}tile.openstreetmap.org" + "/{Z}/{X}/{Y}.png") 
     .hosts(["a.","b.","c.",""]))) 
    .center({lat: -33.882957, lon: 151.073685}) 
    .zoom(11); 

我假設這是角。有什麼解決辦法嗎?

回答

0

要回答我自己的問題,我必須做兩件事才能使它在Angular.js中工作。

第一個解決這個問題的方法是像我一樣包裝#map元素。事實證明,當我將#map元素作爲視圖中唯一的元素時,我的緩存保留了這個錯誤。 (所以,我當時的想法是,刪除緩存中刪除錯誤)

由於polymaps使用#{縮放}/{coordinateX}/{coordinateY}路由,第二件事是添加:

$locationProvider.html5Mode(true); 

給我的app.js文件刪除/#/在我的路線。否則,角和polymaps進行了無限的網址爭奪戰。