【问题标题】:Return data from service not returning proper data从服务返回数据未返回正确数据
【发布时间】:2017-06-17 11:07:54
【问题描述】:

我编写了一个 Angular 服务,它从我的 C# 后端获取一些虚假数据。 C# 后端为该进程使用 ASMX 文件。我有数据回来了,一切都很好,然后我的数据永远不会填充。

我有这种感觉,这与从承诺中返回的数据传递有关。

服务:

app.service('fakeDataCenter', function ($http) {
    this.getFakeData = function ()
    {
        var obj = {
            phoneNumber: "",
            faxNumber: "",
            address: "Loading..",
            };
        $.ajax({
            type: "POST",
            url: "/Services/DataService.asmx/getFakeData",
            cache: false,
            contentType: "application/json; charset=utf-8",
            data: "{}",
            dataType: "json",
            success: function(data, status){
                obj = data;
            }
        });

        return obj;
    };});

我可以说我在点击 obj = data 之前点击了 return obj。如何使代码仅在填充数据后返回。

我已经尝试将 return 语句放入成功函数中,但没有任何运气。它只是返回一个未定义的对象。

【问题讨论】:

标签: c# jquery angularjs


【解决方案1】:

我建议您使用 angular 方法,因为您在应用程序中使用了 angular。像这样更改您的服务方法:

this.getFakeData = function (){
   var obj = {
            phoneNumber: "",
            faxNumber: "",
            address: "Loading..",
            };
    return $http.post('/Services/DataService.asmx/getFakeData', obj).then(
          function (res){
             return res.data;
          },
          function(onErr){
             return onErr.data;
          }
    )
}

然后在您的角度控制器中,您可以像这样获得返回的数据:

fakeDataCenter.getFakeData().then(
    function(data){
        //here in data there is your C# backend service data
    }
);

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2019-11-22
    • 1970-01-01
    • 2011-03-01
    相关资源
    最近更新 更多