【问题标题】:AngularJS ng-repeat - http.gs retrieving data, but not displayingAngularJS ng-repeat - http.gs 检索数据,但不显示
【发布时间】:2014-04-22 08:12:19
【问题描述】:

我是 Angular 的新手,并试图将其集成到我的应用程序中。我正在尝试对 .JSON 文件使用简单的 $http.get,该文件在 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>

然后显示正确的值。

【问题讨论】:

  • 您是否在控制器中获取数据?
  • @BKM - 我可以看到数据正在控制台中使用:console.log(data.countries);... 显示:[Object { name="France", population =“63.1”},对象{名称=“英国”,人口=“61.8”},对象{名称=“西班牙”,人口=“16.7”},对象{名称=“希腊”,人口=“23.5” }]
  • 您能否在 ng-repeat 中检查并打印您的国家对象 {{country | json}}
  • 我觉得不错:plnkr.co/edit/VXLIXGlcRQZwjNMi97sc?p=preview 我想你只是在某个地方打错了。
  • @FizerKhan - 放置 {{countries |我的 HTML 中的 json}} 显示:“”

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


【解决方案1】:

你必须像对象形式的数组中获取数据

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

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 2016-09-06
    • 1970-01-01
    • 2020-08-16
    • 2016-02-22
    • 1970-01-01
    相关资源
    最近更新 更多