ng-repeat得到注释,并且不显示JSON对象的结果

时间:2017-08-16 23:15:24

标签: javascript angularjs json angularjs-ng-repeat

我有这个代码,我不知道为什么,但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


    }


}

提前致谢。

2 个答案:

答案 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

相关问题