角度服务中的变量不适用于2个不同的呼叫

时间:2017-01-25 05:02:37

标签: angularjs

首次调用getDatas.docData();表格tabcontroller我能够提醒 电子邮件,但在第二次调用getData.getDocData();它显示为未定义。

var app = angular.module("myapp", []);

 app.controller("tabController", ['$scope','getDatas','$rootScope', function($scope,getDatas,$rootScope)  {

 $scope.getDocData=function(){  
 getDatas.docData();
 getDatas.getDocData();
 }
 }]);

 app.factory("getDatas",['$http',function($http){
 var docDatas = {content:null};

 return{
docData:function(){
  $http({
  method: 'GET',
  url: '/doctor/getDocData'
 }).then(function(response) {

  docDatas=response.data;
  //alert(docDatas.name);
})
  },  

getDocData:function(){
alert(docDatas.name);

 }
}

 }]); 

我有什么不对的帮助。三江源。

1 个答案:

答案 0 :(得分:0)

js不等待处理此行,然后处理下一行,因为 js是异步你应该在你的工厂使用$ q,在你的代码中可能是这段代码" getDatas.getDocData(); "比" getDatas.docData(); "最后js找不到 docDatas.name 并返回undefind, 祝你好运......