gpt4 book ai didi

javascript - 如何在 AngularJS 中通过回调分配变量作用域?

转载 作者:行者123 更新时间:2023-11-28 01:00:30 24 4
gpt4 key购买 nike

我的 Angular js 应用程序有一个大问题。我有一个工厂模块,它有一个 getAll() 函数,它从服务器获取 json 数据。我有 Controller 模块,我尝试将工厂的 getAll() 函数的值分配给scope.eventSports。

我的问题是,变量分配首先运行,并且它不等待 getAll() 函数返回数据。变量分配首先使用未定义的...然后我得到 getAll() 函数的结果。

如何实现变量分配等待getAll()函数?

工厂:

var gameDataFactory = angular.module('gameDataFactory', []);

gameDataFactory.factory('gameDataFactory', ['gameService', function(gameService) {

var sportEvents = {

getAll : function(){
gameService.getGroupedEvents()
.success(function(data) {
// Get the json data from the server.
// This gives back the data, but later, this run at second time...
console.log(data.sportEvents);
return data.sportEvents;
})
.error(function(error) {
return null;
});
}
};

return {
sportEvents: sportEvents
};
}]);

Controller :

gameControllers.controller('SportEventListCtrl', ['$scope', 'gameService', 'gameDataFactory', '$sce',
function($scope, gameService, gameDataFactory, $sce) {
$scope.sportEvents = {};

$scope.status = true;

// I should somehow assign this scope variable with callback
$scope.sportEvents = gameDataFactory.sportEvents.getAll();
// This run first and this is undefinied.
console.log($scope.sportEvents);

最佳答案

更改此行

gameService.getGroupedEvents()

return gameService.getGroupedEvents()

关于javascript - 如何在 AngularJS 中通过回调分配变量作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com