我有这个代码,我不知道为什么,但ng-repeat指令得到了注释,并没有显示JSON对象的结果。我已检查对象是否已正确传递给带有toSource()方法的“this.paises2”,似乎一切正常。
我在这里查了一下,但没有任何作用:
AngularJS: ng-repeat not displaying JSON
ng-repeat code getting commented out when viewed from browser
ngRepeat div get commented out when i see from the browser inspector
以下是HTML代码:
<html ng-app="miModulo">
<head>
<link href="mis-css.css" rel="stylesheet" type="text/css">
</head>
<body ng-controller="miControlador as vm">
<button ng-click="vm.buscarEnRegion()">Pulsar</button>
<ul ng-repeat="elemento in vm.paises">
<li>
{{elemento.name}}
</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="mijs1.js"></script>
</body>
Javascript / Angular JS代码:
angular
.module("miModulo",[])
.controller("miControlador",['$http',funcionPrincipal] );
function funcionPrincipal($http)
{
this.buscarEnRegion=function()
{
$http.get("https://restcountries.eu/rest/v1/region/africa").then(function(miRespuesta)
{
this.paises=miRespuesta;
// alert(miRespuesta.toSource());
alert(this.paises.toSource());
},function(miRespuesta)
{
alert("incorrecto");
}
); //then
}
}
提前致谢。
答案 0 :(得分:1)
更改此
<ul ng-repeat="elemento in vm.paises">
<li>
{{elemento.name}}
</li>
</ul>
到这个
<ul >
<li ng-repeat="elemento in vm.paises">
{{elemento.name}}
</li>
</ul>
答案 1 :(得分:1)
一些问题。来自angular docs
响应对象具有以下属性:
- data - {string | Object} - 使用
转换的响应正文- 转换功能。 status - {number} -
的HTTP状态代码- 响应。 headers - {function([headerName])} - Header getter function。
- config - {Object} - 用于生成
的配置对象- 请求。 statusText - {string} - 响应的HTTP状态文本。
- xhrStatus - {string} - XMLHttpRequest的状态(完成,错误,超时或中止)。
所以你想要的是miRespuesta.data
。
另一个问题是当你执行this.paises=miRespuesta
时,this
指的是函数,而不是控制器。所以你需要为控制器分配一个变量。所以将控制器更改为:
function funcionPrincipal($http)
{
var vm = this;
vm.buscarEnRegion=function()
{
$http.get("https://restcountries.eu/rest/v1/region/africa").then(function(miRespuesta)
{
vm.paises=miRespuesta.data;
},function(miRespuesta)
{
alert("incorrecto");
}
); //then
}
}
请参阅plunker