使用指令渲染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>
版本信息:
从第1页移到第2页时,没问题。但是,回到第1页:
Error: Map container is already initialized.
我已尝试存储地图对象并使用 map.remove(),这会删除错误但会停止渲染地图。
已修复:请参阅下面的答案。 (在每个部分中使用唯一的ID并抓住它们)
答案 0 :(得分:3)
修正:只需在每个部分中添加一个唯一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);
// ....
}
}
});
什么没有用?
答案 1 :(得分:0)
Skobblerjs是一个&#34;瘦&#34; leafletjs的分叉所以(很可能)错误来自传单逻辑,而不是skobbler逻辑。
还有其他一些提及此错误的内容,请参阅以下任何内容对您有所帮助: https://groups.google.com/forum/#!topic/leaflet-js/xDNcNBAZq8o http://forums.enyojs.com/discussion/540/leaflet-maps
如果没有 - 那么请包含一个jsfiddle或plunker示例,以便我们能够调试