AngularJS AppCtrl等待HTTP事件成功

前端之家收集整理的这篇文章主要介绍了AngularJS AppCtrl等待HTTP事件成功前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是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工作实例

猜你在找的Angularjs相关文章