AngularJS全局访问对象值

时间:2015-08-10 12:16:31

标签: javascript angularjs variables scope angularjs-scope

我遇到以下代码

的问题
   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中的内容不同。我还尝试将facilities_list设置为$ scope.facilities_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)]]})

我想使用来自x行的facility_list。$$ state.value.data.id,所以我将它打印在y行外面但是.value.data在输出中不可用。 所以请指导我......

1 个答案:

答案 0 :(得分:0)

首先,您声明 facilities_list为

var facilities_list

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

第X行包含有关此变量的信息,因为您在休息呼叫成功后调用它。

在asyn方法之后立即调用Y行(此时此刻无法解决),这就是您的变量未定义的原因。 请检查此链接:http://www.w3schools.com/jsref/jsref_undefined.asp 它几乎是同样的情况。

我希望它有所帮助。