diff --git a/src/angular-fusioncharts.js b/src/angular-fusioncharts.js index b2878f2..97975c7 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: { @@ -361,9 +364,8 @@ /* @todo validate the ready function whether it can be replaced in a better way */ angular.element(document).ready(function(){ element.ready(function(){ - // Render the chart only when angular is done compiling the element and DOM. chart = chart.render(); - scope[attrs.chartobject] = chart; + scope[attrs.id] = chart; }); }); }, @@ -401,8 +403,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 +419,7 @@ for (observableAttr in observeConf.NDCObserver) { attrConfig = observeConf.NDCObserver[observableAttr]; + if (attrConfig.ifExist === false || attrs[observableAttr]) { attrs.$observe(observableAttr, attrConfig.observer); } @@ -449,8 +452,7 @@ } } - createFCChart(); - + createFCChart(); } }; }]);