最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Have an AngularJS Ui-grid Error - Stack Overflow

programmeradmin11浏览0评论

I have a single page application with angular js, mongoose, express and so on. Tried to use angular ui grid and have an error:

"TypeError: Cannot read property 'data' of undefined at new (ui-grid.js:2967) at Object.e [as invoke] (angular.js:4203) at $get.w.instance (angular.js:8493) at angular.js:7739 at r (angular.js:331) at B (angular.js:7738) at $get.c (angular.js:8016) at g (angular.js:7117) at B (angular.js:7763) at g (angular.js:7117)"

this is part of my controller:

angular.module('flatCtrl', ['flatService', 'ui.grid'])
    .controller('FlatController', function(Flat, socketio){

        vm = this;

        Flat.allFlat()
            .success(function(data){
                vm.flats = data;
                console.log(vm.flats);
                vm.gridOptions.data = data;

            })

and part of HTML:

<div class="col-md-12" ng-controller="FlatController as flat">
        <div ui-grid="gridOptions"></div>

if i try to use vm.gridOptions.data = data after success nothing changes.

in console.log(vm.flats) have all my objects:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]0: Object1: Object2: Object3: Object4: Object5: Object6: Object7: Object8: Object9: Object10: Object11: Object

so, in data i have data

I have a single page application with angular js, mongoose, express and so on. Tried to use angular ui grid and have an error:

"TypeError: Cannot read property 'data' of undefined at new (ui-grid.js:2967) at Object.e [as invoke] (angular.js:4203) at $get.w.instance (angular.js:8493) at angular.js:7739 at r (angular.js:331) at B (angular.js:7738) at $get.c (angular.js:8016) at g (angular.js:7117) at B (angular.js:7763) at g (angular.js:7117)"

this is part of my controller:

angular.module('flatCtrl', ['flatService', 'ui.grid'])
    .controller('FlatController', function(Flat, socketio){

        vm = this;

        Flat.allFlat()
            .success(function(data){
                vm.flats = data;
                console.log(vm.flats);
                vm.gridOptions.data = data;

            })

and part of HTML:

<div class="col-md-12" ng-controller="FlatController as flat">
        <div ui-grid="gridOptions"></div>

if i try to use vm.gridOptions.data = data after success nothing changes.

in console.log(vm.flats) have all my objects:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]0: Object1: Object2: Object3: Object4: Object5: Object6: Object7: Object8: Object9: Object10: Object11: Object

so, in data i have data

Share Improve this question edited Nov 17, 2015 at 18:58 vinayakj 5,6813 gold badges30 silver badges49 bronze badges asked Jul 18, 2015 at 17:21 Eugeniusz ZuevEugeniusz Zuev 1494 silver badges15 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 6

Change

vm.gridOptions.data = data;

To

vm.gridOptions = {};
vm.gridOptions.data = data;

Or

vm.gridOptions = { data: data }

And

<div class="col-md-12" ng-controller="FlatController as flat">
    <div ui-grid="flat.gridOptions"></div>

You were trying to read a data property of vm.gridOptions which is undefined so first you need define vm.gridOptions and set that object's data property.

发布评论

评论列表(0)

  1. 暂无评论