首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >13920 TypeError:无法在Object.invoke的新<anonymous> (ui-grid.js:3332)读取未定义的属性'data‘

13920 TypeError:无法在Object.invoke的新<anonymous> (ui-grid.js:3332)读取未定义的属性'data‘
EN

Stack Overflow用户
提问于 2017-08-13 11:17:42
回答 1查看 890关注 0票数 0

我试图在我的angular应用程序中使用UI网格,但是我得到了下面的错误:

代码语言:javascript
复制
TypeError: Cannot read property 'data' of undefined
    at new <anonymous> (ui-grid.js:3332)
    at Object.invoke (angular.js:4718)
    at S.instance (angular.js:10354)
    at p (angular.js:9263)
    at angular.js:9673
    at angular.js:16383
    at m.$eval (angular.js:17682)
    at m.$digest (angular.js:17495)
    at m.$apply (angular.js:17790)
    at l (angular.js:11831)

HTML:

代码语言:javascript
复制
<div ui-grid="gridOptionsGeneral" class="myGrid"></div>

JS:

代码语言:javascript
复制
$scope.gridOptionsGeneral = {};
            $scope.gridOptionsGeneral = {
                enableFiltering: true,
                data: res,
                columnDefs: [
                     { field: 'Col1' },
                     { field: 'Col2' },
                     { field: 'Col3' },
                     { field: 'Col4' },
                     { field: 'Col5', enableFiltering: false},
                    { field: 'data1', enableFiltering: false},
                    { field: 'data2', enableFiltering: false},
                    { field: 'data3', enableFiltering: false}
                ],
                onRegisterApi: function (gridApi) {
                    $scope.gridApi = gridApi;
                }
            };

这是我通过http调用得到的响应。具有讽刺意味的是,当我从另一个控制器调用它时,相同的代码段可以工作,但在这个控制器上失败。

EN

Stack Overflow用户

发布于 2017-08-20 07:39:10

由于您没有发布填充数据的httpget,因此您必须修改我的答案以适应您的代码:

代码语言:javascript
复制
$scope.res = [];
$scope.gridOptionsGeneral = {};
$scope.gridOptionsGeneral = {
    enableFiltering: true,
    data: $scope.res,
    columnDefs: [
    { field: 'Col1' },
    { field: 'Col2' },
    { field: 'Col3' },
    { field: 'Col4' },
    { field: 'Col5', enableFiltering: false},
    { field: 'data1', enableFiltering: false},
    { field: 'data2', enableFiltering: false},
    { field: 'data3', enableFiltering: false}
    ],
    onRegisterApi: function (gridApi) {
       $scope.gridApi = gridApi;
    }
};


$http.get(url, config)
.then(
   function(response){
      //success call
      $scope.res = response.data;
   }, 
   function(response){
     // failure call back
   }
);

上面的代码将res定义为一个空数组,这将导致当前代码显示一个空网格。通过将res变量放在作用域中,它将被监视是否有变化。当httpget完成时,成功调用将被激发并重新绑定$scope.res,您的网格也将得到通知和更新。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45656749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档