Error de envío de AngularJS + Fullcalendar TypeError: No se puede leer la propiedad '__id' de undefined

estoy usando angular-ui-calendar en mi website. En el controller, he escrito esto:

define(['underscore'], function (_) { "use strict"; var SearchController = function ($scope, $location, OrdersService, UsersService) { /* config object */ $scope.uiConfig = { calendar: { height: 450, editable: true, firstDay: 0, monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'], monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], dayNames: ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado'], dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'], header: { left: '', center: 'title', right: '' } } }; $scope.eventSources = [$scope.events]; var getTecnicians = function () { UsersService.getTechs().then(function (techs) { $scope.technicians = techs; }); }; var search = function () { var searchObject = $scope.$$childHead.searchForm; UsersService.getCurrentStatus(searchObject.technician._id, searchObject.selectedStartDate).then(function (result) { $scope.states = result[0].states; for (var i = 0; i < $scope.states.length; i++) { var event = {}; if (i === $scope.states.length - 1) { event = { title: $scope.states[i].status, start: $scope.states[i].date, allday: true }; } else { event = { title: $scope.states[i].status, start: $scope.states[i].date, end: $scope.states[i + 1].date }; } $scope.events.push(event) } if (result) { $scope.haveData = true; } }); }; var init = function () { $scope.search = search; $scope.getTecnicians = getTecnicians(); $scope.haveData = false; $scope.events = []; }; init(); }; SearchController.$inject = ["$scope", "$location", "OrdersService", "UsersService"]; return SearchController; }); 

Cuando hago clic en un button hago una request de obtención y obtengo datos del server, los process y genero objects de events y los coloco en mi scope.

Cuando lo termino, el calendar me muestra este error:

 ypeError: Cannot read property '__id' of undefined at sourcesFingerprint (http://localhost:8000/bower_components/angular-ui-calendar/src/calendar.js:48:24) at Object.changeWatcher.getTokens (http://localhost:8000/bower_components/angular-ui-calendar/src/calendar.js:88:21) at Scope.$get.Scope.$digest (http://localhost:8000/bower_components/angular/angular.js:12243:40) at Scope.$get.Scope.$apply (http://localhost:8000/bower_components/angular/angular.js:12516:24) at done (http://localhost:8000/bower_components/angular/angular.js:8204:45) at completeRequest (http://localhost:8000/bower_components/angular/angular.js:8412:7) at XMLHttpRequest.xhr.onreadystatechange (http://localhost:8000/bower_components/angular/angular.js:8351:11) 

¿Necesito poner un _id en events …?

Tengo el mismo error, una forma de solucionarlo es, inicie el array de events $ scope.events = [] y luego haga la request http

Usando esta reference:

 searchObject.technician.__id 

sin definir searchObject.technician es el problema.

Este es un error de ui-calendar ( aquí ). ¿Agregaste el atributo ng-model para ui-calendar?

 <div ui-calendar ng-model="eventSources"></div> 

Además, después de init() , parece ser $scope.events es una matriz vacía. Entonces creo que puedes pasarlo directamente.

 $scope.eventSources = $scope.events; // this is an array. 

Tuve el mismo problema. Todo se networkinguce al order en el que defines todo. Para estar seguro, será mejor que declares las fonts de tus events al final.

Html:

 <div ui-calendar ng-model="eventSources"></div> 

Controlador:

 $scope.events = [ {title: 'Long Event',start: new Date()} ]; $scope.eventSources = [$scope.events];