正确显示分层json数据

时间:2015-11-17 04:17:51

标签: javascript json angularjs

我的json看起来像这样:

[
  {
    "Id": 1,
    "Name": "Item1",
    "Order": 1,
    "Categories": [
      {
        "Id": 1,
        "Name": "Item1-Subitem1",
        "Order": 1,
        "Subcategories": [
          {
            "Id": 1,
            "Name": "Item1-Subitem1-Subsubitem1",
            "Order": 2
          },
          {
            "Id": 2,
            "Name": "Item1-Subitem1-Subsubitem2",
            "Order": 1
          },
          ...

并且有角度我需要在主要项目的第一页(或路线)链接上显示。例如:

项目1
项目2
当点击它们时,链接应显示名称来自'类别'
对于示例:

项目1-Subitem1
项目1-Subitem2

当点击这些链接时,应显示名称来自'子类别'
例如:

项目1-Subitem1-Subsubitem1
项目1-Subitem1-Subsubitem2

现在我的第一个链接有效,但我不知道如何根据url的值从同一个json获取嵌套数据。当我在第一个视图中点击链接时,我转到我需要的页面但没有数据。没有显示错误。我相信我需要从网址解析id,但是如何实现呢? 可在此处查看http://plnkr.co/edit/GTfLFQepFcXzXYcIHnP0
我使用的是ui-router

1 个答案:

答案 0 :(得分:1)

在secondList.js中,您使用错误的名称定义了范围。它应该是:

scope: {
        secondList: '='
    },

修复后,您还错过了service.js中的最终工厂:

  app.factory('singleList', ['$http', function ($http) {
      return {
          get: function () {
              return $http.get('data.json').then(function (re) {
                  return re.data;
              });
          }
      };
  }])