2

ディレクティブを使用して Skobbler リーフレットをレンダリングします。

angular.module('app.directives').directive('skm', function()
{
    return {
        restrict: 'E',
        replace: true,
        scope: false,
        template: '<div></div>',
        link: function(scope, element, attrs) {

            var map = L.skobbler.map('skm', scope.skm);

            // ....
        }
    }
});

このディレクティブは、さまざまなルート/パーシャルで同様の方法で使用されます。

<skm id="skm"></skm>

バージョン情報:

  • スコブラー 2.0
  • AngularJS 1.2.16

1ページから2ページに移動するときは問題ありません。ただし、ページ 1 に戻ると、次のようになります。

    Error: Map container is already initialized.

マップ オブジェクトを保存し、map.remove()を使用してみました。これにより、エラーは削除されますが、マップのレンダリングが停止します。

FIXED : 以下の私の回答を参照してください。(各パーシャルで一意の ID を使用し、それらを取得します)

4

2 に答える 2

0

Skobblerjs は leafletjs の「薄い」フォークであるため、(ほとんどの場合) エラーは skobbler ロジックではなくリーフレット ロジックから発生します。

このエラーについては他にもいくつか言及されています。次のいずれかを参照してください: https://groups.google.com/forum/#!topic/leaflet-js/xDNcNBAZq8o http://forums.enyojs.com /discussion/540/leaflet-maps

そうでない場合 - デバッグできるように jsfiddle または plunker の例を含めます

于 2014-07-14T07:11:41.860 に答える