2014-09-21 9 views
5

: see plunkerng tablosunda karmaşık nesne veya json kullanarak dinamik sütun nasıl eklenir? i ng-tablo için kod şu var

var app = angular.module('main', ['ngTable']). 
    controller('DemoCtrl', function($scope, $filter, ngTableParams) { 
     var data = [{name: "Moroni", age: 50,address:{coun:'USA',state:'sd'}}, 
      {name: "Tiancum", age: 43,address:{coun:'UK',state:'sda'}}, 
      ]; 
     $scope.columns = [ 
      { title: 'Name', field: 'name', visible: true, filter: { 'name': 'text' } }, 
      { title: 'Age', field: 'age', visible: true }, 
      { title: 'country', field: 'add', visible: true } 
     ]; 
     $scope.tableParams = new ngTableParams({ 
      page: 1,   // show first page 
      count: 10,   // count per page 
      filter: { 
       name: 'M'  // initial filter 
      } 
     }, { 
      total: data.length, // length of data 
      getData: function($defer, params) { 
       // use build-in angular filter 
       var orderedData = params.sorting() ? 
         $filter('orderBy')(data, params.orderBy()) : 
         data; 

       $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count())); 
      } 
     }); 
    }) 

ve HTML:

i sütunda adı yaş ve ülkeyi görüntülemek zorunda
 <tr ng-repeat="user in $data"> 
      <td ng-repeat="column in columns" ng-show="column.visible" sortable="column.field"> 
       {{user[column.field]}} 
      </td> 
     </tr> 

. ancak bu kodu kullanarak adı, yaşı ve address nesnesini göremiyorum. lütfen sadece ülke veya eyaleti nasıl görüntüleyeceğimi öner.

cevap

7

ben bu soru için çözüm var: see plunker

bununla html kodu yukarıdaki değiştirin: Eğer böyle böyle alt alanı görüntülemek istediğiniz belirli bir sütunda $scope.columns için

<tr ng-repeat="user in $data"> 
     <td ng-repeat="column in columns" ng-show="column.visible" sortable="column.field"> 
      {{user[column.field][column.subfield] || user[column.field]}} 
     </td> 
    </tr> 

eklenti alt alan Bu:

$scope.columns = [ 
       { title: 'Name', field: 'name', visible: true, filter: { 'name': 'text' } }, 
       { title: 'Age', field: 'age', visible: true }, 
       { title: 'country', field: 'add', visible: true,subfield:'coun' } 
      ]; 
+1

seninkini çalışmıyor yeni plunker yarattık: http://plnkr.co/edit/lO8FhO?p=preview – Kalamarico

+0

It alt alanları listelemek için Tamam, ancak aynı alt alanlara göre filtrelemeyi nasıl başarırsınız? (yani bu örnekte ülkeye göre filtreleme) –