Angularjs ng重复通过工厂服务获取数据时不显示数据

Angularjs ng重复通过工厂服务获取数据时不显示数据,angularjs,Angularjs,需要帮助才能理解我的错误/在页面上显示数据 我在论坛上浏览了几乎所有的问题,说“ng重复不起作用”。但仍然无法找到答案 (请注意:我第一次尝试通过使用$http创建factory服务来获取数据) 请看一下我下面的JavaScript代码(模块、控制器和工厂在一个地方定义) 提前感谢您的阅读和帮助 我最近的观察: 当我在控制台上写数据时,得到了这个。(看看函数getData(data)) “LabX”,{“A'U领导层ID:“429369,”B'U领导层ID:“429369”,“B'U源,”B'

需要帮助才能理解我的错误/在页面上显示数据

我在论坛上浏览了几乎所有的问题,说“ng重复不起作用”。但仍然无法找到答案

(请注意:我第一次尝试通过使用$http创建factory服务来获取数据)

请看一下我下面的JavaScript代码(模块、控制器和工厂在一个地方定义)

提前感谢您的阅读和帮助

我最近的观察:

当我在控制台上写数据时,得到了这个。(看看函数getData(data))

“LabX”,{“A'U领导层ID:“429369,”B'U领导层ID:“429369”,“B'U源,”B'U源“:“LabX”,,{“A'U领导层ID:“430586”,B'U领导层ID:“430586”,B'U领导层ID:“A'U领导层ID:“4264646464646469,”A'A'U领导层ID:“42939369,”LabX,,,,,{“A'A'A'U领导层ID:“LabX”LabX”,”LabX,,,,,,,,,,,,{“B'U领导层ID:“B'U领导层ID:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“A_LeadId”:“453009”,“B_源”:“低价”},{“A_LeadId”:“453010”,“B_源”:“低价”},{“A_LeadId”:“455736”,“B_源”:“信息”},{“A_LeadId”:“455743”,“B_源”:“信息”},{“A_LeadId”:“457030”,“B_源”:“信息”},{“A_LeadId”:“457052”,“B_源”:“LabX”},{“A_源”:“461503”,“B_源”:“手动输入”}]

若我复制此文件并直接分配给vm.LeadsLogRptData,系统会在屏幕上正确显示输出。 e、 g.vm.LeadsLogRptData=[{“A_LeadId”:“426429”,“B_Source”:“LabX”},…]

还有一件事,当我检查数据长度时,它显示621。({{vm.LeadsLogRptData.length})

实际上只有15个花括号对({}),系统应该显示长度为15

希望我能正确地解释/描述我的问题

(需要将我的数据正确转换为Json格式的东西)

谢谢

我得到了答案

只需将eval与Json.parse一起使用,系统就会开始正确显示数据 e、 g.vm.LeadsLogRptData=eval(JSON.parse(data))

有人能给我解释一下这背后的逻辑吗


感谢到目前为止阅读和回复的所有人。

也许您应该使用$http对象的params属性,如:

function GetAllData() {                
            return $http({
                method: 'GET',
                url: 'http://localhost:12345/DataHandler.ashx',
                params: {method: "leadsReport", listId: 504473}
            })
            .then(sendResponseData)
            .catch(sendError)
        }
如果要执行POST请求,应如下使用:

function PostData() {                
            return $http({
                method: 'POST',
                url: 'http://localhost:12345/DataHandler.ashx',
                data: {exampleData: exampleData}
            })
            .then(sendResponseData)
            .catch(sendError)
        }

请记住更改您的服务器URL。

您不太清楚“If I assign hard coded data return by server”是什么意思。在控制台语句
console.log(JSON.parse(data));
?Sajan,请查看下面的“我的最新观察”部分“。希望这能帮助你理解我的问题。谢谢你的帮助。但是如果我想发布我的表单字段,我该如何传递它们呢?如果我想传递两个输入字段和一个单选按钮值,我如何在“exampleData”中压缩它们?我还必须能够通过使用请求对象在处理程序页面上检索它们。请提供指导。例如,如果您的视图模型对象(如
$scope.user
)具有
$scope.user.name
$scope.user.name
)等字段,并且您希望将其传递到$http数据属性中,则只需执行
数据:{exampleData:$scope.user}
,或
数据:{exampleData1:$scope.user.name,exampleData2:$scope.user.姓氏}
Kacper感谢您的解释。代码看起来与我目前在JQuery中使用的代码非常相似,只是param name不需要单引号(')。将尝试此操作,如果遇到任何问题,请再次寻求您的帮助。谢谢,它与JQuery代码非常相似。尝试一下。
    $.ajax({
        url: 'AbcdHandler.ashx',
        type: 'POST',
     data: {
          'method': 'ABCData',
          'StartDate': startDate,
          'EndDate': endDate
     },
     success: function (result) {
          return JSON.parse(result);
     },
     error: OnError
});
function GetAllData() {                
            return $http({
                method: 'GET',
                url: 'http://localhost:12345/DataHandler.ashx',
                params: {method: "leadsReport", listId: 504473}
            })
            .then(sendResponseData)
            .catch(sendError)
        }
function PostData() {                
            return $http({
                method: 'POST',
                url: 'http://localhost:12345/DataHandler.ashx',
                data: {exampleData: exampleData}
            })
            .then(sendResponseData)
            .catch(sendError)
        }