1 Reply Latest reply on Jun 16, 2016 1:50 AM by pallavi mn

    AngularJS ,Tableau, and div id's

    Linden Druminski

      I have a tabset populated with ng-repeat.  I only want Tableau on the 1st tab so I use $index for the div id.  The problem is that the DOM is sometimes not rendered yet, so the placeholder parameter for Viz is undefined.  My current solution is using an AngularJS directive using  $evalAsync (see below).  Does anyone else have this issue?

       

      .directive('repeater', function() {

           return function postLink(scope, element, attrs) {

                scope.$evalAsync(function(){

                     if (scope.subproject.subProjectName == "Volcker Internal Reporting") {

                          scope.$emit('ngRepeatFinished');

                     }

                });

           };

      })  

       

      In the controller, the Viz is created in the refreshReport function when ngRepeatFinished is emitted.

       

      $scope.$on('ngRepeatFinished', function () {

           $scope.refreshReport($scope.subproject.reportsList);

      });