Javascript 使用$PROMITE results更新子数组时更新嵌套数组值
我正在使用FullCalendar组件构建一个调度程序应用程序,该组件从嵌套的数组模型$scope.eventSources(由多个子事件数组组成,gDataService.events就是其中之一)馈送事件。它使用了受这个plunkr示例启发的$resource 当以下控制器首次运行时,gDataService.events被分配函数(开始、结束、回调)。。。作为它的值,$scope.eventSource被分配一个由1个元素组成的数组(这是函数)。问题是,当calFactory通过$resource成功从服务器提取数据时,gDataService.events正确填充了事件数据,但$scope.eventSource没有(即仍然保留1个函数元素的旧值)。我尝试了$scope.$apply,但它抱怨摘要已经在进行中 非常感谢你的帮助Javascript 使用$PROMITE results更新子数组时更新嵌套数组值,javascript,arrays,angularjs,promise,Javascript,Arrays,Angularjs,Promise,我正在使用FullCalendar组件构建一个调度程序应用程序,该组件从嵌套的数组模型$scope.eventSources(由多个子事件数组组成,gDataService.events就是其中之一)馈送事件。它使用了受这个plunkr示例启发的$resource 当以下控制器首次运行时,gDataService.events被分配函数(开始、结束、回调)。。。作为它的值,$scope.eventSource被分配一个由1个元素组成的数组(这是函数)。问题是,当calFactory通过$reso
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=[gDataService.events]代码>在函数内定义,应在控制器中定义,在函数外。试试这个:
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];
});
这里似乎有一个括号问题,因为我看到您也在控制器中定义了一个工厂。您正在使用一个方法分配一个数组,该方法包含对$scope的回调。eventSources
是否有意这样做?您不能直接执行$scope.eventSources=events
?感谢您的及时回复。正如你所建议的,我把它放在函数定义之外,但是没有用。关于括号的问题,我忘了把结束括号放在这里。已编辑。@javvva是否可以设置代码的plnkr?