我正在使用以下代码来获取json对象并将其绑定到$ scope
工作代码:
$http({
url: '/Home/GetJson',
method: "GET",
params: {
clientID: cId
}
}).success(function (data) {
$scope.members = data.members;
})
它起作用..我想做的是将结果放入a中,var data
然后将其添加到$ scope中。
失败代码:
var data = $http({
url: '/Home/GetJson',
method: "GET",
params: {
clientID: cId
}
}).success(function (data) {
return data.members;
})
$scope.members = data;
当我查看$ scope.members时,它在失败的代码中为空,因为$ scope.members在填充时为空(js基于事件)。
我如何才能等到json返回>然后var = data>然后$ scope.members = data?
工作代码
我使用了Javascript回调函数,如下所示
调用我的主要功能
DoLogin($scope, $http, email, password, AssingMemberToScope);
function DoLogin($scope, $http, email, password, callback) {
$http({
url: '/Home/GetJson',
method: "GET",
params: {
clientID: cId
}
}).success(function (data) {
callback($scope, data); //<----- Call Back occurs
})
}
//-回调函数的工作和代码是分开的-/
function AssingMemberToScope($scope, data) {
if (data.msg) {
$('.loading').hide();
$scope.member = data.member;
} else {
$('.loading').hide();
$('#msg').show();
}
}
我认为更好的方法是将JSON调用放入接受callback
函数作为参数的函数中。快速示例:
function makeJSONCall(callback) {
$http({
url: '/Home/GetJson',
method: "GET",
params: { clientID: cId }
}).success(function (data) {
callback(data);
});
}
function someFunctionCallback(param) {
console.log(param)
}
现在,在该callback
函数内部,对数据进行所需的操作。您现在也可以在需要时调用JSON函数,这很简单makeJSONCall(someFunctionCallback)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句