0

我正在尝试学习如何使用 Angular 加载 JSON。我是两个主题的初学者,并且坚持一些真正的初学者主题。

我有一个名为 food.json 的 JSON 文件。它有这样的结构:

 [
  {"uid":"55","title":"Nussbrot","code":"U VP 0000030","unit":[{"title":""}],"unitgram":"0","unitgram_second":"0","sorting":"0"},
  {"uid":"58","title":"Walnu\u00dfbrot","code":"X 39 2000002","unit":[{"title":"Scheiben"}],"unitgram":"45","unitgram_second":"0","sorting":"0"}
 ]

按照http://toddmotto.com/ultimate-guide-to-learning-angular-js-in-one-day/的说明,我有一个这样的控制器:

myApp.controller('EmailsCtrl', ['$scope', function ($scope) {

$scope.foodlist = {};
$scope.foodlist.foodtitle = '';

$http({
  method: 'GET',
  url: 'food.json'
})
.success(function (data, status, headers, config) {
  $scope.foodlist = data.; //I don't know what to call here as my data elements have no names?
})
.error(function (data, status, headers, config) {
  //error
});
}]);

我坚持的第一点是,如果 JSON 对象没有名称,我如何将数据分配给我的“$scope.foodlist”?

到目前为止,我已经为我的无效尝试构建了一个 Plunkr,并且希望在 a) 读取 JSON 和 b) 将 JSON 数据分配给控制器中的值方面提供任何指导。

4

2 回答 2

0

ng-repeat在您的情况下,将迭代数据中的对象数组

你只需要使用:

<li ng-repeat="food in foodlist">

然后在循环的每次传递中,角度将引用数组中的当前对象以产生类似的输出{{ food.title }}

我在这里更新了你的演示

编辑强烈建议您逐步阅读有关角度文档网站的教程

于 2013-10-30T17:27:45.307 回答
0

第一个问题是在控制器定义中:你试图引用 $http 但你没有传入它。

myApp.controller('EmailsCtrl', ['$scope', '$http', function ($scope, $http) {

然后在success您的data参数上是您的foodlist

.success(function (data, status, headers, config) { $scope.foodlist = data; })

最后,在你的 html 中,ng-repeat应该是这样的:

ng-repeat="food in foodlist"

于 2013-10-30T20:51:53.720 回答