AngularJS全局访问对象值

AngularJS accessing object values globally

本文关键字:对象 访问 全局 AngularJS      更新时间:2023-09-26

我有一个问题,与以下代码是

   var  facilities_list;
   facilities_list= $http({
               url: 'facilitiesList_api.php', 
               method: "GET",
               params: {
                   "api":"TRUE","uid":"1","functionName" : "getUserFacilitiesList",
                       },
              headers: {
                          'Content-Type': 'application/json'
                  }
           }).success(function(data){
                 console.log(data);
                 console.log(facilities_list.$$state.toSource()); // line x

          });
        console.log(facilities_list.$$state.toSource());  //line y

我试图在x行和y行打印相同的值,但y行内容与x行内容不相同。我还尝试将facilties_list放入$scope中。facilties_list仍然显示未定义
x行的输出为

    ({status:1, pending:(void 0), value:{data:[{id:"3", name:"Your  Name Here", color:"#99FFFF"}], status:200, headers:(function (c){
    "use strict";
    a||(a=Lc(b));return c?a[S(c)]||null:a}), config:        
    {method:"GET",         
     transformRequest:[(function (a){
    "use strict";
     return R(a)&&"[object File]"!==Ea.call(a)&&"
    [object Blob]"!==Ea.call(a)?ra(a):a})], 
    transformResponse:[(function (d){
     "use strict";
    F(d)&&(d=d.replace(c,""),
    b.test(d)&&a.test(d)&&(d=hc(d)));
    return d})],         
    url:"http://localhost/oe/facilitiesList_api.php",         
    params:{api:"TRUE",        
    uid:"1",         
    functionName:"getUserFacilitiesList"},
     headers:{Accept:"application/json, 
    text/plain, */*",        
     Authorization:"Basic a2VybWl0Omtlcm1pdA=="}},
     statusText:"OK"}, processScheduled:false})

,对于行y为

   ({status:0, pending:[[{promise:{$$state:{status:0}}, 
     resolve: (function (c){
     "use strict";
     b.call(a,c)}), reject:(function (c){
     "use strict";
     b.call(a,c)}), notify:(function (c){
     "use strict";
     b.call(a,c)})}, (function (b){
     "use strict";
     a(b.data,b.status,b.headers,c)}), (void 0), (void 0)]]})

我想使用那个facililties_list .$$state.value.data。从x行全局输出Id所以我把它打印到y行外面,但是。value。输出数据不可用。

首先声明 facilities> list为

var facilities_list

然后你分配异步方法给这个变量..($http)所以:

X行包含关于该变量的信息,因为您在rest调用成功后调用它。

Y行在asynn方法之后被调用(此时还没有解析),这就是为什么变量是未定义的。请查看此链接:http://www.w3schools.com/jsref/jsref_undefined.asp这几乎是相同的情况。