2

我的服务抓取 JSON 数据并将数据成功返回到控制器,但是我在使用 ng-repeat 迭代键名时遇到问题。

我想将页面上的键名称显示为列表,因为它们是类别名称。

目前 ng-repeat 迭代正确的次数,但它不显示键名。

控制器:

app.controller('getNav', function(getJSONData, $scope) {
    var path = 'json/navigation';
    getJSONData.async(path).then(function(d) {
        $scope.data = d;    
    });
});

服务:

app.factory('getJSONData', function($http) {
  var getJSONData = {
    async: function(path) {
      var promise = $http.get(path).then(function (response) {
        return response.data;
      });
      return promise;
    }
  };
  return getJSONData;
});

JSON数据:

{ 
     "data": {
         "category_a": ["a", "b", "c", "d"], 
         "category_b": ["e", "f", "g"], 
         "category_c": ["h", "i", "j"]
     }, 
     "response": "Navigation"
}

看法:

<ul ng-controller="getNav">
   <li data-ng-repeat="(key, value) in data.data">Category name is: {{key}}</li>
</ul>
4

1 回答 1

5

好的,希望我能帮助将来遇到同样问题的人。我浪费了一天的时间把头发拉在这该死的东西上。从我的谷歌应用程序引擎中分离出文件后,我发现这些文件可以在简单的 MAMP localhost 上运行,但不能在谷歌应用程序引擎上运行。

经过一番搜索,我发现这是因为 Angular 和 DJango 使用 {{}} 的模板标签冲突。所以只需设置角度来使用不同的东西,问题就会得到解决,见这里:

AngularJS 与 Django - 模板标签冲突

于 2013-03-16T12:51:59.993 回答