我遇到以下代码
的问题 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在输出中不可用。 所以请指导我......
答案 0 :(得分:0)
首先,您声明 facilities_list为
var facilities_list
然后你将异步方法分配给这个变量..($ http)所以:
第X行包含有关此变量的信息,因为您在休息呼叫成功后调用它。
在asyn方法之后立即调用Y行(此时此刻无法解决),这就是您的变量未定义的原因。 请检查此链接:http://www.w3schools.com/jsref/jsref_undefined.asp 它几乎是同样的情况。
我希望它有所帮助。