From 935b12429e1f7fcd9e854fc71cd268d4527af9cc Mon Sep 17 00:00:00 2001 From: ranajitbanerjee Date: Thu, 17 Sep 2015 13:01:37 +0530 Subject: [PATCH 1/2] Fix container id not compiled in dynamic templates -Earlier,container id was not compiled so we were getting could not find container element error -Now,an id attribute is added to scope -setting the container element id to scope.id when id is given -This resolves the container element not found error in dynamic templates --- src/angular-fusioncharts.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/angular-fusioncharts.js b/src/angular-fusioncharts.js index b2878f2..60173a1 100644 --- a/src/angular-fusioncharts.js +++ b/src/angular-fusioncharts.js @@ -23,7 +23,8 @@ var fc = angular.module('ng-fusioncharts', []); - fc.directive('fusioncharts', ['$http', function($http) { + fc.directive('fusioncharts', ['$http',function($http) { + return { scope: { width: '@', @@ -47,9 +48,11 @@ rows: '@', columns: '@', map: '@', - markers: '@' + markers: '@', + id:'@' }, link: function(scope, element, attrs) { + var observeConf = { // non-data componenet observers NDCObserver: { @@ -360,10 +363,13 @@ chart = new FusionCharts(chartConfigObject); /* @todo validate the ready function whether it can be replaced in a better way */ angular.element(document).ready(function(){ + console.log("Ready"); element.ready(function(){ + // Render the chart only when angular is done compiling the element and DOM. + debugger; chart = chart.render(); - scope[attrs.chartobject] = chart; + scope[attrs.id] = chart; }); }); }, @@ -401,8 +407,8 @@ eventsObj[key] = scope.$parent[attrs[attr]]; } } - - + //fix for container id not compiled before rendering in dynamic templates issue RED-2012 + element[0].id=scope.id===undefined?element[0].id:scope.id; chartConfigObject = { type: attrs.type, width: attrs.width, @@ -417,6 +423,7 @@ for (observableAttr in observeConf.NDCObserver) { attrConfig = observeConf.NDCObserver[observableAttr]; + if (attrConfig.ifExist === false || attrs[observableAttr]) { attrs.$observe(observableAttr, attrConfig.observer); } @@ -449,8 +456,7 @@ } } - createFCChart(); - + createFCChart(); } }; }]); From d5b38a37af4975a671af070b889ea47ab9bd0b92 Mon Sep 17 00:00:00 2001 From: ranajitbanerjee Date: Tue, 19 Apr 2016 16:17:57 +0530 Subject: [PATCH 2/2] Removed debugger statemnt --- src/angular-fusioncharts.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/angular-fusioncharts.js b/src/angular-fusioncharts.js index 60173a1..97975c7 100644 --- a/src/angular-fusioncharts.js +++ b/src/angular-fusioncharts.js @@ -363,11 +363,7 @@ chart = new FusionCharts(chartConfigObject); /* @todo validate the ready function whether it can be replaced in a better way */ angular.element(document).ready(function(){ - console.log("Ready"); element.ready(function(){ - - // Render the chart only when angular is done compiling the element and DOM. - debugger; chart = chart.render(); scope[attrs.id] = chart; });