我在前面使用 angular.js。
在我的controller.js 中,我定义了一个 init() 方法,该方法将在
中调用初始化我的 Controller 。
初始化方法定义:
var init = function () {
$scope.callTeamsService();
if ($scope.teams.length == 0){
....
}else{
...
}
.....
};
在$scope.callTeamsService中,我填写了$scope.teams变量。
$scope.callTeamsService方法定义:
$scope.callTeamsService = function(){
NavService.getTeams(function (response) {
$timeout(function () {
$scope.teams = response;
}
}, 200);
});
};
在我的 service.js 中,我定义了一个 getTeams 方法,如下所示:
service.getEquipes = function (callback) {
$http.get(urlBase+'users/' + $rootScope.globals.currentUser.loggedUser.idUser + '/teams')
.success(function (response) {
callback(response);
});
};
我的问题是当达到$scope.teams.length == 0条件时
service.getEquipes 我的 service.js 中的方法尚未调用。
如何修改此代码以便在达到 $scope.teams.length == 0 条件之前完成 $scope.callTeamsService 方法的执行。
最佳答案
service/factory
service.getEquipes = function () {
return $http.get(urlBase+'users/' + $rootScope.globals.currentUser.loggedUser.idUser + '/teams');
};
// controller
var promise = NavService.getTeams.then (
function(data) {
//assign to $scope or do logic
},
function(err){
console.log(err)
}
)
关于javascript - 将 Promise 与 angular.js 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006429/