2017-06-28 5 views
1

データをデータグリッドオプションにバインドしようとしています。私はそれをロジックを追加するときにリフレッシュを行うとデータをロードするのに役立つと読んでいます。角度uiグリッド| TypeError:未定義のプロパティ 'core'を読み取ることができません

助けてください...

< < < < < < HTMLコード>>>>>>

<div ng-controller="MainCtrl"> 
    <br /> 
    <b>{{msg}}</b> 
    <div id="grid1" ui-grid="gridOptions" class="grid" ui-grid-pagination></div> 
</div> 

< < < < < <のJavaScriptコード>>>>> >>

var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.edit', 'ui.grid.pagination']); 
app.controller('MainCtrl', function($scope, $filter, $http, $timeout) { 
    $scope.gridOptions = { 
     enableSorting: true, 
     enableRowSelection: true, 
     enableRowHeaderSelection: false, 
     enableFiltering: true, 
     selectionRowHeaderWidth: 35, 
     rowHeight: 35, 
     multiSelect: true, 
     enableGridMenu: true, 
     columnDefs: [ 
       { name: 'client' }, 
       { name: 'qa_ver' }, 
       { name: 'qa_build_no' }, 
       { name: 'qa_build_date' }, 
       { name: 'prod_ver' }, 
       { name: 'prod_build_no' }, 
       { name: 'prod_build_date' }, 
       { name: 'prod_deploy_date' }, 
       { name: 'deploy_src' }  
    ], 
     data: 'jsonData', 
     paginationPageSizes: [5, 10, 25, 50], 
     paginationPageSize: 5, 
    } 

    $timeout(function() { 
     getJSONData(); 
     $scope.data = jsonData; 
     $scope.gridOptions.data = $scope.data; 
    }, 3000); 

$scope.gridOptions = { 
     onRegisterApi: function(gridApi){ $scope.gridApi = gridApi;} 
    } 
    $scope.gridApi.core.refresh(); 

< < < < < <スローされるエラー>>>>>>

はTypeError:プロパティを読み取ることができません未定義

at new <anonymous> (dashboard.html:114) 
at Object.invoke (angular.js:4625) 
at $controllerInit (angular.js:10027) 
at nodeLinkFn (angular.js:8965) 
at compositeLinkFn (angular.js:8333) 
at compositeLinkFn (angular.js:8336) 
at compositeLinkFn (angular.js:8336) 
at publicLinkFn (angular.js:8213) 
at angular.js:1715 
at Scope.$eval (angular.js:17025) 
+0

'$ scope.gridOptions ='が2回あり、設定オブジェクトを上書きするようです。また、データが文字列として始まっても大丈夫ですか? 'data: 'jsonData''あなたの例を単純化したり、静的なデータでそれを試してみると便利かもしれません。 '$ timeout'と' getJSONData() '(APIへのリクエスト?)は、この例をより複雑にし、静的データを扱うときに追加することができます。 'GridApi'を注入して' GridApi.core.refresh() 'を呼び出す必要があると思います。範囲内では利用できません。 –

+0

@ScottyWaggoner感謝の気持ち私の今のところ、適切な解決策に関するあなたのフィードバックと勧告から作業しているので、感謝します。 –

答えて

2

の 'コア' 私は正しいフォームがあるべきと考えています:

$scope.gridOptions = { 
     enableSorting: true, 
     enableRowSelection: true, 
     enableRowHeaderSelection: false, 
     enableFiltering: true, 
     selectionRowHeaderWidth: 35, 
     rowHeight: 35, 
     multiSelect: true, 
     enableGridMenu: true, 
     columnDefs: [ 
       { name: 'client' }, 
       { name: 'qa_ver' }, 
       { name: 'qa_build_no' }, 
       { name: 'qa_build_date' }, 
       { name: 'prod_ver' }, 
       { name: 'prod_build_no' }, 
       { name: 'prod_build_date' }, 
       { name: 'prod_deploy_date' }, 
       { name: 'deploy_src' }  
     ], 
     onRegisterApi: function(gridApi){ 
      $scope.gridApi = gridApi; 
     } 
     data: 'jsonData', 
     paginationPageSizes: [5, 10, 25, 50], 
     paginationPageSize: 5, 
    } 

    $timeout(function() { 
     getJSONData(); 
     $scope.data = jsonData; 
     $scope.gridOptions.data = $scope.data; 
    }, 3000); 


    $scope.gridApi.core.refresh(); 


.. 
.. 
. 

} 
関連する問題