首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS模式关闭调用JS函数不执行

AngularJS模式关闭调用JS函数不执行
EN

Stack Overflow用户
提问于 2014-11-19 19:25:29
回答 1查看 288关注 0票数 0

仍然试图理解复杂的AngularJS,所以原谅我缺乏更好的理解。

我有一个功能:

代码语言:javascript
复制
function getTeams(){
  var onSuccess = function(results){
     $scope.myTeams = results.data;
     console.log($scope.myTeams);
  };

  var onFail = function(error){
    console.log(error);
  };

  dataService.getTeams().then(onSuccess, onFail);
};

dataService只是一个JS文件,它具有服务调用(即):

代码语言:javascript
复制
var serviceFactory = [];

var _getTeams = function(){
  return $http.get(serviceUrl).then(function (results){
    return results;
  });
};

serviceFactory.getTeams = _getTeams;

return serviceFactory;

最初,当我调用该函数时,我能够得到我需要的团队的列表。

但当我打开一个模态窗口时,在关闭模态窗口时,我调用相同的函数,比如:

代码语言:javascript
复制
$scope.openTeamModal = function(){
  $scope.modalInstance = $modal.open({
    templateUrl: 'modal.html',
    controller: 'modalCtrl',
    backdrop: 'static'
  });

  this.modalInstance.result.then(
    function(results){
      getTeams();
    }
  )
}

当我在modalInstance.result线下的行getTeams()上设置一个断点(在Chrome控制台中)时,实际上正在检索团队。但是,当我移除断点并简单地让应用程序完成它的过程时,$scope.myTeams的值没有被正确地更新。

如果没有调试,console.log($scope.myTeams)将生成我要检索的原始团队数。

使用Debug,console.log($scope.myTeams)生成了我要检索的正确数量的团队。

任何关于如何解决这一问题的见解都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-19 22:18:00

此返回$http.get(ServiceUrl).then(函数(结果){返回结果;});将立即返回一个对象。.then(函数.当承诺实现时,部分就会执行。因此,当您立即返回给getTeams的电话时,结果将不可用。试一试:

代码语言:javascript
复制
   return $http.get(serviceUrl);

然后

代码语言:javascript
复制
   var promise = getTeams();
   promise.then(function(results) {
      ......
   }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27025268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档