0

angularjs アプリ内に polymaps マップを追加しようとしています。

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 は角度ビュー内の要素に setAttribute できませんか?

私の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);

これは角度があると思います。回避策はありますか?

4

1 に答える 1

0

私自身の質問に答えるには、Angular.js で機能させるために 2 つのことを行う必要がありました。

この問題を解決する最初の方法は、私が行ったように #map 要素をラップすることでした。ビュー内の唯一の要素として #map 要素を持っていたときから、キャッシングがこのエラーを保持していたことがわかりました。(だから私は正しい考えを持っていたので、キャッシュを削除するとエラーが解消されました)

polymaps は #{zoom}/{coordinateX}/{coordinateY} ルーティングを使用するため、2 番目に次を追加します。

$locationProvider.html5Mode(true);

app.js ファイルに移動して、ルートの /#/ を削除します。そうでなければ、Angular と Polymap は URL をめぐって無限の戦いを繰り広げました。

于 2014-04-06T16:35:41.223 に答える