Я пытаюсь обновить значение данных рендеринговой карты. Я использую плагин jquery, jVectorMap.Обновление данных диаграммы плагина jQuery у AngularJs
Проблема в том, что когда я пытаюсь обновить набор данных, новая диаграмма добавляется к dom, сразу после старой.
Plunkr: http://plnkr.co/edit/eTyLpb3dAJf3AAmjrqDX?p=preview
app.directive('map', function() {
return {
restrict: 'EAC',
link: function(scope, element, attrs) {
scope.$watch("mapdata" , function(n,o){
$(element).width('auto')
$(element).height(400)
$(element).vectorMap({
backgroundColor: 'transparent',
regionStyle: {
initial: {
fill: '#cccccc'
}
},
series: {
regions: [{
values: scope.mapdata,
scale: ['#C8EEFF', '#0071A4'],
normalizeFunction: 'polynomial'
}]
},
});
});
}
};
});
Другой подход мог бы быть таким:
app.directive('map', function() {
return {
restrict: 'EAC',
link: function(scope, element, attrs) {
var chart = null;
var data = scope.datamap;
scope.$watch("data" , function(n,o){
if(!chart){
$(element).width('auto')
$(element).height(400)
chart = $(element).vectorMap({})
}else{
chart.vectorMap('set', 'colors', {us: '#000000'});
console.log(chart)
}
});
}
};
});
Plunkr: http://plnkr.co/edit/ib3Rgz?p=preview
При таком подходе я могу изменить цвет фона, но не государственные цвета .. .
Я не уверен, где я должен установить уаг MapObject ... Я обновил plunkr (http://plnkr.co/edit/ib3Rgz?p=preview), попробовать другой подход, основанный на эта статья http://eric-schaefer.com/blog/2013/07/26/rendering-flot-charts-through-angular-js/ – Tropicalista
@jojo вы можете опубликовать Plunkr с вашим вариантом 2? – Jago