#angularjs #ng-grid #ngtable
#angularjs #ng-grid #ngtable
Вопрос:
Я пытаюсь создать вложенную сетку в моей ngtable следующим образом:
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in $data">
<td data-title="'Name'">{{user.name}}</td>
<td data-title="'Age'">{{user.age}}</td>
<td data-title="'kids'">
<table ng-table="nestedtableParams" class="table">
<tr ng-repeat="nesteduser in $nesteddata">
<td data-title="'Name'">{{nesteduser.name}}</td>
<td data-title="'Age'">{{nesteduser.age}}</td>
</tr>
</table>
</td>
</tr>
</table>
вопрос: почему вложенные данные не отображаются? вот plunkr:
http://plnkr.co/edit/dKTtU89f7z6nQptgEZxN?p=preview
Ответ №1:
Это заработало, добавив данные в $scope
: (частичный пример кода)
$scope.nesteddata = [{
name: "Kid Moroni",
age: 50
}, {
name: "Kid Tiancum",
age: 43
}, {
name: "Kid Jacob",
age: 27
}, {
name: "Kid Nephi",
age: 29
}, {
name: "Kid Enos",
age: 34
}];
А затем в функциях контроллера обратитесь к этим $scope
переменным:
$scope.nestedtableParams = new ngTableParams({
page: 1, // show first page
count: 10 // count per page
}, {
total: $scope.nesteddata.length, // length of data
getData: function($defer, params) {
$defer.resolve($scope.nesteddata.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
Наконец, в разметке я пропустил $ prefix
, поскольку эти данные теперь находятся в области видимости:
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in data">
<td data-title="'Name'">{{user.name}}</td>
<td data-title="'Age'">{{user.age}}</td>
<td>
<table ng-table="nestedtableParams" class="table">
<tr ng-repeat="user in nesteddata">
<td data-title="'Name'">{{user.name}}</td>
<td data-title="'Age'">{{user.age}}</td>
</tr>
</table>
</td>
</tr>
</table>
Рабочий плунжер (хотя я сомневаюсь, что имеет смысл вкладывать такие сетки)
Комментарии:
1. плунжер сломан