2015-07-18 3 views
2

У меня есть одностраничное приложение с угловыми js, mongoose, express и т. Д. Пытались использовать угловую щ сетку и имеют ошибку:Имейте Угловую ошибку УгловойJS

"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)"

это является частью моего контроллера:

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

так, в данных У меня есть данные

ответ

5

Изменить

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> 

Вы пытаетесь прочитать data свойство vm.gridOptions, которое не определено поэтому сначала вам нужно определить vm.gridOptions и установить data свойство этого объекта.

+0

спасибо, но ошибка не исчезла ( –

+1

вы забыли еще одну вещь .. обновили ответ .. вы не используете имя переменной правильно .. Если вы хотите напрямую использовать имена переменных в поле зрения, используйте '$ scope' else вам нужно указать объект контроллера в вашем случае 'flat' – vinayakj

+0

i'm tryin с vm.gridOptions = {}; vm.gridOptions.data = data и с этим vm.gridOptions = {data: data}. все еще есть ошибка –

Смежные вопросы