AngularJS ng-repeat - http.gs检索数据,但不显示

时间:2014-04-22 08:12:19

标签: javascript jquery angularjs angularjs-scope angularjs-ng-repeat

我是角色的新手,并尝试将其集成到我的应用程序中。我正在尝试使用简单的$http.get到.JSON文件,该文件在ng-repeat

中显示匹配的内容

我的到达:

$scope.countries = [];
$http.get('/resources/data/countries-report.json').success(function(data) {
    $scope.countries = data.countries;
    // alert(JSON.stringify($scope.countries));
    console.log(data.countries);
    console.log(data.countries.population);
}).error(function(error) {
    alert('error');
});

这是我的.JSON文件:

{
  "firstName"   : "Joe",
  "surName" : "Bloggs",
  "countries" : [
      { "name": "France", "population": "63.1" },
      { "name": "Span", "population": "52.3" },
      { "name": "United Kingdom", "population": "61.8" }
  ]
}

这是我的HTML:

<li ng-repeat="country in countries">
    {{country.name}} has population of {{country.population}}
</li>

在浏览器中查看时,显示的所有内容均为:

  • 有人口
  • 有人口
  • 有人口

好像我的代码可以看到有3个国家/地区,就像我在我的.JSON文件中添加或删除时一样,HTML中的列表会相应地修改,但是,.JSON的内容不会显示。

我忘了从.get ??

返回数据

**更新*************************

正如有人提到的,我的代码似乎是正确的,我想我知道问题可能是什么。

我的应用程序使用使用Swig的HTML模板结构,使用{{}}访问.JSON文件。这是否会导致与Angular的混淆?

**更新*************************

如果我改变:

var app = angular.module("app", []);

var app = angular.module('app', []).config(function($interpolateProvider){
        $interpolateProvider.startSymbol('{[{').endSymbol('}]}');
    }
);

<li ng-repeat="country in countries">
     {{country.name}} has population of {{country.population}}
</li>

要:

<li ng-repeat="country in countries">
     {[{country.name}]} has population of {[{country.population}]}
</li>

然后显示正确的值。

1 个答案:

答案 0 :(得分:0)

您必须获取对象形式数组中的数据,如

[
  { 
    id:1,
    ima:gh.jpg,
    data: 
    [
      {
        anotherid:1,
        my:w,
        ki:y
      }
    ]
  },
  {
    id=2,
    ima:jh.jpg
  }
]