我在我的网站上使用angular-ui-calendar。在控制器中,我这样写:
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;
});
当我单击按钮时,我会执行获取请求并从服务器获取数据,对其进行处理并生成事件objets并将其放入我的范围。
完成后,日历会显示此错误:
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)
我需要在事件上加上_id吗?
我遇到了同样的错误,一种解决方法是,初始化事件数组$ scope.events = [],然后发出http请求
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句