【发布时间】: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