从AngularJS $ http返回对象

拉维拉姆

我正在使用以下代码来获取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();
    }

}
tyme合资公司

我认为更好的方法是将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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章