【发布时间】:2015-02-26 19:25:17
【问题描述】:
我正在使用 FullCalendar 组件构建一个调度程序应用程序,该组件从嵌套数组模型 $scope.eventSources 提供事件,该数组模型包含多个事件子数组(gDataService.events 就是其中之一)。它使用受此 plunkr 示例启发的 $resource。 http://plnkr.co/edit/pIDltQRV6TQGD4KQYnj7?p=preview.
当下面的控制器第一次运行时,gDataService.events 被分配了函数(start, end, callback)... 作为它的值,并且 $scope.eventSource 被分配了一个包含 1 个元素的数组(也就是函数)。问题是当 calFactory 通过 $resource 成功地从服务器中提取数据时,gDataService.events 会正确填充事件数据,但 $scope.eventSource 没有(即仍然保留 1 个函数元素的旧值)。我尝试了 $scope.$apply,但它抱怨摘要已经在进行中。
非常感谢您的帮助。
myApp.controller("MainCtrl", function($scope,$compile,uiCalendarConfig, calFactory, gDataService) {
var getEventSuccessCallback = function (data, status) {
gDataService.events = function(start, end, callback) {
var events;
events = data.query({
start: start,
end: end
});
events.$promise.then(function(value){
gDataService.events = value ;
callback(gDataService.events);
};
$scope.eventSources = [gDataService.events];
};
})
myApp.factory("calFactory",['$resource', function($resource) {
return {
getEvents: function () {
return $resource("/caldata/?c=to1_list",{});
}
};
}]);
【问题讨论】:
-
您正在分配一个数组,其方法包含对
$scope.eventSources的回调,这是有意的吗?你就不能$scope.eventSources = events吗?
标签: javascript arrays angularjs promise