使用指令渲染 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/