|
45 | 45 | map: '@',
|
46 | 46 | markers: '@',
|
47 | 47 | initialized: '&',
|
48 |
| - datasourceDt: '=datasourceDt' |
| 48 | + datasourceDt: '=datasourceDt', |
| 49 | + datasource: '=datasource' |
49 | 50 | },
|
50 | 51 | fcEvents = [
|
51 | 52 | 'beforelinkeditemopen',
|
|
199 | 200 | scope: scope,
|
200 | 201 | link: function(scope, element, attrs) {
|
201 | 202 | function updateData(key, data) {
|
202 |
| - scope.datasourceDt.key = data; |
203 |
| - chart.setJSONData(scope.datasourceDt); |
| 203 | + if (key) { |
| 204 | + scope.datasourceDt.key = data; |
| 205 | + chart.setJSONData(scope.datasourceDt); |
| 206 | + } |
204 | 207 | }
|
205 | 208 |
|
206 | 209 | function createWatchersForAttrs(datasource) {
|
|
627 | 630 | chart.setJSONData(chartConfigObject.dataSource);
|
628 | 631 | }
|
629 | 632 | }, 0);
|
630 |
| - |
631 | 633 | // chart.setJSONData(chartConfigObject.dataSource);
|
632 | 634 | },
|
633 | 635 | createFCChart = function() {
|
|
689 | 691 | }
|
690 | 692 | }
|
691 | 693 | }
|
| 694 | + |
692 | 695 | for (i = 0; i < attribs.length; i++) {
|
693 | 696 | attr = attribs[i];
|
694 | 697 | if (attr.match(/^on/i)) {
|
|
715 | 718 | }
|
716 | 719 | }
|
717 | 720 |
|
718 |
| - if (attrs.datasource) { |
719 |
| - chartConfigObject.dataSource = |
720 |
| - chartConfigObject.dataFormat === 'json' |
721 |
| - ? JSON.parse(attrs.datasource) |
722 |
| - : attrs.datasource; |
723 |
| - dataStringStore.dataSource = attrs.datasource; |
| 721 | + if (chartConfigObject.dataFormat === 'json') { |
| 722 | + if (scope.datasource) { |
| 723 | + attrs.datasource = scope.datasource; |
| 724 | + chartConfigObject.dataSource = scope.datasource; |
| 725 | + dataStringStore.dataSource = scope.datasource; |
| 726 | + |
| 727 | + scope.$watch( |
| 728 | + 'datasource', |
| 729 | + function(newData, oldData) { |
| 730 | + if (newData !== oldData) { |
| 731 | + chartConfigObject.dataSource = scope.datasource; |
| 732 | + dataStringStore.dataSource = scope.datasource; |
| 733 | + setChartData(); |
| 734 | + if (chartConfigObject.dataFormat === 'json') { |
| 735 | + setChartData(); |
| 736 | + } else { |
| 737 | + if (chartConfigObject.dataFormat === 'xml') { |
| 738 | + chart.setXMLData(newData); |
| 739 | + } else if (chartConfigObject.dataFormat === 'jsonurl') { |
| 740 | + chart.setJSONUrl(newData); |
| 741 | + } else if (chartConfigObject.dataFormat === 'xmlurl') { |
| 742 | + chart.setXMLUrl(newData); |
| 743 | + } |
| 744 | + } |
| 745 | + } |
| 746 | + }, |
| 747 | + true |
| 748 | + ); |
| 749 | + } |
| 750 | + } else { |
| 751 | + if (attrs.datasource) { |
| 752 | + chartConfigObject.dataSource = |
| 753 | + chartConfigObject.dataFormat === 'json' |
| 754 | + ? JSON.parse(attrs.datasource) |
| 755 | + : attrs.datasource; |
| 756 | + dataStringStore.dataSource = attrs.datasource; |
| 757 | + } |
724 | 758 | }
|
725 | 759 |
|
726 | 760 | for (observableAttr in observeConf.DCObserver) {
|
|
0 commit comments