Я хочу эффективный способ определения угловой директивы, которая записывается для отображения диаграммы.Оптимальный способ использования угловых директив и JSON
После прочтения других ответов здесь Я нашел хороший способ создать директиву, которая отображает один график без каких-либо проблем.
Как использовать одну и ту же директиву для отображения разных графиков? Для каждого графика необходим объект JSON, который имеет настройки и данные для рендеринга.
Я не хочу загрязнять свой угловой вид, введя 100-150 строк JSON и передавая его через директиву.
Подробности: -
- Каждая диаграмма имеет несколько пар общий ключ/значение, что я могу оставить в директиве.
- Как мне ввести конкретный ключ карты & пары значений в каждой директиве?
Например: - Скажем, я хочу, чтобы на одной диаграмме были зеленые полосы, а на другой диаграмме были красные линии.
Угловая Директива
(function() {
'use strict';
angular
.module("analytics")
.directive("angularDirectiveAmcharts", angularDirectiveAmcharts);
function angularDirectiveAmcharts() {
var directive = {
link: link,
restrict: 'A',
replace: true,
scope: {
chartdata: '=',
type: '=',
customstyle: '@',
chartsettings: '=',
chartid: '@'
},
template: '<div id="{{ chartid }}" style="{{ customstyle }}"></div>'
};
return directive;
function link(scope, elem, attrs) {
AmCharts.makeChart(scope.chartid, {
"type": "serial",
"categoryField": "date",
"autoMarginOffset": 10,
"marginRight": 20,
"marginTop": 20,
//I've deleted lots of keys and values for the sake of brevity
"dataProvider": scope.chartdata
});
}
}
})();
Посмотреть
<div class="chartarea" ng-controller="pcController as vm">
<div angular-directive-amcharts chartid="chartdiv" chartdata="vm.chart_data"></div>
</div>
Я особенно о ремонтопригодности, потому что много изменений будет сделано после того, как я сделал с моей стажировки.
+1 для получения подробного ответа. Да.В своем вопросе я упомянул, что основал свой код на других ответах, которые я нашел в StackOverflow. Есть ли другой способ, кроме этого? Мы в офисе уже думали о его расширении. Это становится громоздким, когда нам нужны живые данные. –
Другой способ, чем то, что именно? Что вы думаете о продлении? Я не понимаю ваши вопросы. Пожалуйста, объясните их более точно. – gerric