2016-09-29 24 views
0

首先,我对离子和angularjs很陌生。现在我试图开发一个应用程序,我现在无法显示和搜索数据。Angularjs与ng-repeat嵌套的json对象不能在离子工作

我有一个嵌套的JSON对象,我不能用ng-repeat显示它。

这是json对象。

$scope.nestedTestdata = [{ 
       "leadlist ": [{ 
        "submitted_date": "01-01-2160", 
        "submission_value": { 
         "full_name": "Full Name ", 
         "phone": "This is test data.", 
         "source": "I hate you" 
        } 
       }, 
        { 
         "submitted_date": "01-01-2015", 
         "submission_value": { 
          "full_name": "full name", 
          "phone": "phone.", 
          "source": "I really really hate you" 
         } 
        }, 
        { 
         "submitted_date": "01-01-2016", 
         "submission_value": { 
          "full_name": "I am awesome", 
          "phone": "HP phone.", 
          "source": "I hate you" 
         } 
        }] 
      }]; 

这里是我如何显示。

<div class="lead_row" ng-repeat="data in nestedTestdata.leadlist | filter: model.search" > 

      <div class="lead_col">{{data.submitted_date | date : 'dd-MMM-yyyy'}}</div> 
      <div class="lead_col">{{data.submission_value.source}}</div> 
      <div class="lead_col">{{data.submission_value.full_name}}</div> 
      <div class="lead_col">{{data.submission_value.phone}}</div>  
     </div> 

当我将它更改为以下json对象时,它可以显示和搜索功能也工作。

$scope.testdata = [{ 
       "submitted_date": "01-01-2160", 
       "submission_value": { 
        "full_name": "Search is working", 
        "phone": "This is fucking test data.", 
        "source": "I hate you" 
       } 
      }, 
       { 
        "submitted_date": "01-01-2015", 
        "submission_value": { 
         "full_name": "Fucking full name", 
         "phone": "Fucking phone.", 
         "source": "I really really hate you" 
        } 
       }, 
       { 
        "submitted_date": "01-01-2016", 
        "submission_value": { 
         "full_name": "I am awesome", 
         "phone": "Fucking HP phone.", 
         "source": "I hate you" 
        } 
       }]; 

所以我认为这不是显示问题。 请帮忙弄清楚我该如何做这项工作。

请在下面的链接中检查完整的代码。 http://play.ionic.io/app/720567016712

非常感谢你提前。

回答

2

nestedTestData包含一个数组。在数组内部,有一个对象。

ng-repeat="data in nestedTestdata[0].leadlist | filter: model.search" 

SO代码应该如下:

<div class="lead_row" ng-repeat="data in nestedTestdata[0].leadlist | filter: model.search" > 
       <div class="lead_col">{{data.submitted_date | date : 'dd-MMM-yyyy'}}</div> 
       <div class="lead_col">{{data.submission_value.source}}</div> 
       <div class="lead_col">{{data.submission_value.full_name}}</div> 
       <div class="lead_col">{{data.submission_value.phone}}</div>  
      </div> 
+0

你刚才救我的一天。我完全忽略它,非常感谢。我会尽快接受答案。 –

1

所以你有一个数组然后要定义一个对象的另一个阵列“leadlist”的键。上面的回答能解决你的问题,或者你可以只删除您的按键上的数组你可以访问它正常data.nestedTestData

下面是你如何能重写一遍:

`$scope.nestedTestdata = { 
    "leadlist" : [{ 
     "submitted_date": "01-01-2160", 
     "submission_value": { 
     "full_name": "Full Name ", 
     "phone": "This is test data.", 
      "source": "I hate you" 
    } 

}, 
{ 
    "submitted_date": "01-01-2015", 
    "submission_value": { 
     "full_name": "full name", 
     "phone": "phone.", 
     "source": "I really really hate you" 
    } 
}, 
{ 
    "submitted_date": "01-01-2016", 
    "submission_value": { 
     "full_name": "I am awesome", 
     "phone": "HP phone.", 
     "source": "I hate you" 
    } 
}] 

};`

1

您可以使用嵌套ng-repeat,如果$scope.nestedTestdata中有多个对象,它也可以使用。 Here is working fiddle

<div ng-controller="MyCtrl"> 
    <div class="lead_row" ng-repeat="data in nestedTestdata"> 
     <div ng-repeat="list in data.leadlist"> 
      <div class="lead_col">{{list.submitted_date | date : 'dd-MMM-yyyy'}}</div> 
      <div class="lead_col">{{list.submission_value.source}}</div> 
      <div class="lead_col">{{list.submission_value.full_name}}</div> 
      <div class="lead_col">{{list.submission_value.phone}}</div> 
     </div> 
    </div> 
</div> 

请删除空格之后"leadlist "