加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS AppCtrl等待HTTP事件成功

发布时间:2020-12-17 09:57:24 所属栏目:安全 来源:网络整理
导读:我是AngularJS的新手,需要一些帮助,我有一个“AppCtrl”,从那里我有一个HTTP webservice调用 – 并且需要在我的其他控制器中访问webservice调用响应. angular.module('starter.controllers',[]).controller('AppCtrl',function($scope,$http) { $scope.webse
我是AngularJS的新手,需要一些帮助,我有一个“AppCtrl”,从那里我有一个HTTP webservice调用 – 并且需要在我的其他控制器中访问webservice调用响应.
angular.module('starter.controllers',[])

.controller('AppCtrl',function($scope,$http) {

    $scope.webservice_url = "http://webserviceurl.com/";

    $http.get($scope.webservice_url+"?action=get_settings").success(function(data,status,headers,config) {
        $scope.stations = data.stations;
    });
})

这工作很精细 – 我可以访问我的模板中的$scope.stations – 但现在我想访问我的“PlaylistCtrl”控制器中的$scope.stations,但这是未定义的:(

.controller('PlaylistCtrl',$stateParams) {
    console.log($scope.stations); // is undefined :(
})

如何在加载“PlaylistCtrl”之前确保http调用已“完成”(成功)…

如果可能的话,你应该把http变成服务/工厂
var app = angular.module('plunker',[]);

app.controller('MainCtrl',dataService) {
  dataService.then(function (data) {
    $scope.data = data
  })
});


app.controller('SecondCtrl',dataService) {
  dataService.then(function (data) {
    $scope.secData = data
  })
});

app.service('dataService',function ($http,$q){
  var defferer = $q.defer()

  $http.jsonp('http://ip.jsontest.com/?callback=JSON_CALLBACK').success(function (data){
    defferer.resolve(data)
  })

  return defferer.promise
})

http://plnkr.co/edit/8k97DngZ8KoFOBPFJG82?p=preview工作实例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读