我有一个带有 angular js、mongoose、express 等的单页应用程序。尝试使用 Angular ui 网格并出现错误:
"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)"
这是我的 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;
})
和部分 HTML:
<div class="col-md-12" ng-controller="FlatController as flat">
<div ui-grid="gridOptions"></div>
如果我在成功后尝试使用 vm.gridOptions.data = data
,则没有任何变化。
在 console.log(vm.flats)
中有我所有的对象:
[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
所以,在数据中我有数据
最佳答案
改变
vm.gridOptions.data = data;
到
vm.gridOptions = {};
vm.gridOptions.data = data;
或者
vm.gridOptions = { data: data }
和
<div class="col-md-12" ng-controller="FlatController as flat">
<div ui-grid="flat.gridOptions"></div>
您正在尝试读取 vm.gridOptions
的 data
属性,该属性未定义,因此首先您需要定义 vm.gridOptions
并设置它对象的 data
属性。
关于javascript - 出现 AngularJS Ui-grid 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31493624/