Javascript angularjs没有';t返回字符串值,但不返回其他类型
我使用Typescript和Angularjs从服务器获取数据,但是当我尝试在页面上显示数据时,只有字符串类型没有显示,而其余类型则按预期显示。数据被解析为json,我可以看到我想要的数据。我不确定是angularjs还是typescript,尽管我认为它是typescript。我可能错过了什么 当Javascript angularjs没有';t返回字符串值,但不返回其他类型,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我使用Typescript和Angularjs从服务器获取数据,但是当我尝试在页面上显示数据时,只有字符串类型没有显示,而其余类型则按预期显示。数据被解析为json,我可以看到我想要的数据。我不确定是angularjs还是typescript,尽管我认为它是typescript。我可能错过了什么 当计数按预期显示时,名称属性不显示 var promise = $http.get("/data/book").success( function (data) {
计数按预期显示时,名称
属性不显示
var promise = $http.get("/data/book").success(
function (data) {
var response = data;
$scope.Book= [];
for (var i = 0; i < response.length; i++) {
var Name = response[i].Name;
var Count = response[i].Count;
$scope.Book.push(new Book(Name, Count));
}
var promise=$http.get(“/data/book”).success(
功能(数据){
var响应=数据;
$scope.Book=[];
对于(变量i=0;i
您几乎肯定想要反序列化消息,因为您将拥有一个JSON字符串,而不是JavaScript对象:
var response = JSON.parse(data);
如果您确定Angular已经按照@aapierce的注释为您完成了此操作,则应检查对象的结构。例如,可能怀疑以下行:
var response = data;
for (var i = 0; i < response.length; i++) {
var响应=数据;
对于(变量i=0;i
例如,数组是响应的父级吗?可能是(例如)response.books.length
而不是response.length
。显然,这完全取决于JSON,因此如果您发布,答案可能会更加明确。您的数据
看起来像什么?如果可以,请发布一些JSON。此外,我假设您正在使用ng repeat
展开Book
数组ost也支持该代码。不完全正确。基于,数据
对象可以是JSON对象,而不是字符串。由于可以请求任何类型的数据(不仅仅是JSON),我认为Angular足够聪明,可以查看HTTP响应的内容类型
头并对其进行适当的解析(然而,在10分钟的搜索中,我无法找到任何确定的来源来证实或否认这一点)。我得到了它,显示了所需的信息。这只是我在代码中犯的一个小错误。我不需要反序列化消息,因为我从服务器收到的数据是JSON字符串。@Lynn如果你不介意,请发布“小错误”这是你在回答中提出的。其他人稍后可能会发现这个问题,想知道你是如何解决问题的!@aapierce你是对的-Angular JS文档说,如果检测到JSON响应,它将反序列化JSON。