angularjs - 在 AngularJS 指令中使用 Skobbler : 'Map container is already initialized.'

标签 angularjs angularjs-directive skmaps

使用指令渲染 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 对象并使用map.remove(),这可以消除错误但停止渲染 map 。

已修复:请参阅下面我的回答。 (在每个部分中使用唯一的 ID 并获取它们)

最佳答案

已修复:只需在每个部分中放置一个唯一的 ID,并在指令中获取该 ID,然后使用该 ID 创建传单。

部分 1:

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

部分2:

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

指令:

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(attrs.id, scope.skm);

            // ....
        }
    }
});

什么不起作用:

  • 在指令 $destroy 上用原始 HTML 替换outerHTML(指令效果不佳)
  • map.remove()(Skobbler 不在乎)
  • 在 Skobbler 图书馆大喊脏话(Skobbler 不在乎)

关于angularjs - 在 AngularJS 指令中使用 Skobbler : 'Map container is already initialized.' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697159/

相关文章:

javascript - Angular ng-repeat无法获取对象的值

javascript - 如何在angularjs中找到函数调用者

javascript - ngModel 第一次不触发 View 更新

javascript - AngularJS 指令和模型

skmaps - POI 的彩色纹理

android - 我如何在 skobbler (android) 中创建带有航路点的路线

javascript - 将格式字符串传递给指令并对其进行插值

java - 返回修改后的搜索结果

在Bootstrap Modal Form中插入新记录后,AngularJS刷新智能表

ios - 如何在 skobbler 导航中启用标题下一回合 View