2016-01-16 3 views
-1

Я использую шарнирную сетку для отображения данных из базы данных, так что я получаю данные по AJAX, проблема в синхронизации, шарнирной сетка загружена перед тем, как данными из базы данныхВызова функции synchronizely в angularjs

Как я могу получить данные Перед выполнить поворотную решетку?

функция GetData() для извлечения данных из базы данных

function getData{ 
    ScoreService.getAverageScore($stateParams.id).then(function(output){ 
     $scope.jsonData=output; 
    }); 
    } 

код поворота сетки

 $scope.pivotData = new $.ig.OlapFlatDataSource({ 
     dataSource:$scope.jsonData, 
     metadata: { 
      cube: { 
       name: "Sales", 
       caption: "Route Scores", 
       measuresDimension: { 
        caption: "Measures", 
        measures: [ //for each measure, name and aggregator are required 
         { 
          caption: "Score Value", name: "Value", 
          // returns a function that will be used as sum aggregator on the 'UnitsSold property' of the data objects 
          aggregator: $.ig.OlapUtilities.prototype.sumAggregator('Value') 
         }] 
       }, 
       dimensions: [ // for each dimension name and hierarchies are required 
        { 
         caption: "Rules", name: "ScoreCategory", hierarchies: [{ 
          caption: "Score Category", name: "ScoreCategory", levels: [ 
           { 
            name: "AllCategories", caption: "All Categories", 
            memberProvider: function (item) { return "All Categories"; } 
           }, 
           { 
            name: "CategoryName", caption: "Category", 
            memberProvider: function (item) { return item.ScoreCategoryName; } 
           }] 
         }] 
        }, 
        { 
        caption: "Scenarios", name: "Scenario", hierarchies: [{ 
          caption: "Scenario Category", name: "Scenario", levels: [ 
           { 
            name: "AllScenarios", caption: "All Scenarios", 
            memberProvider: function (item) { return "All Scenarios"; } 
           }, 
           { 
            name: "ScenarioName", caption: "Scenario", 
            memberProvider: function (item) { return item.ScenarioName; } 
           }] 
         }] 
        } 
       ] 
      } 
     }, 
     // Preload hierarchies for the rows, columns, filters and measures 
     rows: "[Scenario].[Scenario]", 
     columns: "[ScoreCategory].[ScoreCategory]", 
     measures: "[Measures].[Value]" 
    }); 
    }); 

ответ

0

Вы можете синхронизировать на результат вызова AJAX, чтобы создать экземпляр сетки:

$scope.$watch(function() {return $scope.jsonData}, function(oldV, newV) { 
    if ((newV) && (newV != oldV)) { 
     $scope.pivotData = new $.ig.OlapFlatDataSource({ 
     dataSource:$scope.jsonData, 

     // your function 
     ... 
    } 
} 
+0

Сводная таблица не отображается –

+0

Если вы установили точки останова на 'if ((newV) && (newV! = OldV)) {' и на 'if ((newV) && (newV! = oldV)) {', они вызываются? –

Смежные вопросы