2016-02-19 20 views
0

我想顯示我在ui網格表中使用其餘呼叫檢索到的數據。當我將數據綁定到範圍變量並嘗試在HTML頁面上調用它時,它會給出一個TYPEERROR:typeerror無法讀取未定義的angularjs的屬性「數據」。 我想它無法獲取數據,從而導致錯誤。任何人都可以指導我一下,我到底在下面的代碼丟失:在撥打休息電話後顯示在ui網格中的數據

.controller("widgetCtrl", ["logger", "$scope", "$http", "widgetService", "localizationService", 
     "gettextCatalog", 
     function (logger, $scope, $http, widgetService, localizationService, gettextCatalog) { 
     var myuid; 
     var myrole; 
     var locale = localizationService.getLocale(); 
     gettextCatalog.loadRemote("/dashboardplugins/B27F0520-86CF-1033-B9C8-005056A891F8/resources-locale_" + 
     locale + ".json"); 
     logger.info("WidgetContoller started"); 
     $scope.gridOptions = {}; 
     /** 
     * load function 
     * 
     */ 
     $scope.load = function() { 
      widgetService.getData().then(function (response) { 
       $scope.mydata = response; 
       $scope.myrole = response.roles[0].split("/").pop(); 
       $scope.myuid = $scope.myuid = response.meta["@href"].split("/").pop(); 
       $scope.gridOptions = { 
        excludeProperties: "__metadata", 
        data: [ 
         { 
          id: $scope.myuid, 
          name: response.name, 
          role: $scope.myrole, 
          state: response.state 
         } 
        ], 
        columnDefs: [ 
         {name: "ID", field: "id"}, 
         {name: "Name", field: "name"}, 
         {name: "role", field: "role"}, 
         {name: "state", field: "state"} 
        ], 
        i18n: [ 
        ] 
       }; 
      }); 
     }; 
     $scope.load(); 

HTML頁面:

<div ng-Controller="widgetCtrl"> 
    <h1>User Info</h1> 
    <div ui-grid="gridOptions"></div> 
</div> 

JSON數據對象:

Object {data: Object, status: 200, config: Object, statusText: "OK"} 
config: Object 
data: Object 
auth-source: "DATABASE" 
createdate: "2016-02-10T20:47:48.408Z" 
creator: Object 
meta: Object 
moddate: "2016-02-10T20:47:48.408Z" 
modifier: Object 
name: "admin" 
perms: Object 
roles: Array[1] 
state: "ACTIVE" 
sys: false 
tenant-id: 1 
tenant-name: "default" 
__proto__: Object 
headers: (name) 
status: 200 
statusText: "OK" 
__proto__: Object 

回答

0

它看起來像你這樣做不在getData函數之外有$scope.gridOptions的引用,所以請嘗試在getData()調用之上的某處設置$scope.gridOptions = {};。我認爲你錯誤中的undefined指的是$scope.gridOptions,假設你上面發佈的是你的logger函數的結果,它驗證你從服務調用中獲取數據。

+0

謝謝!添加$ scope.gridOptions = {};幫助拋出未定義的數據錯誤。但是數據仍然沒有得到顯示。你認爲Json對象的不一致結構可能是原因嗎? – user2128

+0

很難知道,如果不知道你返回的JSON數據是什麼樣的......你上面顯示的不是JSON,但你應該可以通過'response.data.data'訪問它。你可以創建一個plunker或添加JSON數據到你的問題?無論如何,你可以將數據按摩到一旦你在客戶端擁有它就會顯示出來。 –

+0

是的,我做了一些改變,數據正在顯示。但我對我的代碼不滿意。我通常不喜歡這種硬編碼的方法。 – user2128