Это то, что я делаю. Я называю rest api, который возвращает ответ в этом формате
"метаязыки": {"1": {"id": 1, "имя": "абхазский"}, "2": {"id": 2, "name": "Afar"}}, "производители": {"-1": {"id": -1, "name": "all"}, "1": {"id": 1, "name": "RIM"}, "2": { "id": 2, "name": "HP"}}
Это в основном карта строк и карты. Теперь мне нужно создать n число таблиц, где n - количество ключей исходной карты, и внутри каждой таблицы я должен показать данные, которые будут значением внутренней карты ("id": 2, "name": "HP")
Я заработал, но поиск не работает. Это мой пример кода
<div ng-repeat="(key,value) in metadataDetails">
<table st-table="metadataCollection" st-safe-src="metadataDetails" class="table table-striped">
<thead>
<tr class="style_tr">
<th st-sort="name">name</th>
<th st-sort="name">name</th>
<th st-sort="description">description</th>
<th st-sort="countryName">countryName</th>
<th st-sort="carrierName">carrierName</th>
</tr>
<tr class="textSearchTr">
<th colspan="4" class="textSearchTr">
<input class="freshblue" placeholder="Enter value to search/filter" type="text" ng-model="searchParam.search" />
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in getValueMap(key)" ng-show="showRow">
<td>{{row.id}}</td>
<td>{{row.name}}</td>
<td>{{row.description}}</td>
</tr>
</tbody>
</table>
</div>
И мой файл js
AuditMetadataService.get({}, function(data) {
$scope.numRecord = data.length;
$scope.metadataDetails = data;
$scope.metadataCollection = [].concat($scope.metadataDetails);
console.log("Return value :");
console.log($scope.metadataDetails);
});
$scope.getValueMap = function(key) {
console.log(key);
return $scope.metadataDetails[key];
};
Может кто-нибудь помочь?
Вы можете превратить свой объект карты в массив, получив его ключи и используя функцию Array.prototype.map
, вам придется повторить это и для внутренних объектов карты, потому что st-sort
ожидает элемент массива, а не значение ключа.
$scope.tables = keys.map(function(key) {
return Object.keys(data[key]).map(function(k) {
return data[key][k];
});
});
Затем вы можете перебирать $scope.tables
с помощью ng-repeat
для создания всех таблиц, а щелчки заголовков столбцов теперь отсортируют их правильно.
Вот демонстрация.