Я работаю над модулем, в котором мне нужно изменить дизайн некоторых продуктов. Ниже приведен скриншот того, как продукты отображались ранее.
Теперь продукты будут отображаться внутри аккордеона их конкретного имени. Я обязан использовать версию ui.bootstrap: 0.11.0 - 2014-05-01. Ниже приведен эскиз того, как продукты будут отображаться сейчас. В каждом аккордеоне будет таблица данных этого конкретного продукта, в которой столбцы будут динамически генерироваться, и мы сможем проверить конкретные продукты, которые нам нужны.
Ниже приведен мой HTML-код:
<accordion>
<accordion-group ng-repeat="AllProduct in AllProducts">
<accordion-heading>
{{AllProduct.TypeName}}
</accordion-heading>
</accordion-group>
<table id="dtVoice" class="table manage-user-table offer-mgt-table" dt-options="dtOptions" dt-columns="dtColumns"></table>
</accordion>
То, как я динамически создал таблицы данных, выглядит следующим образом:
dtColumns.push(DTColumnBuilder.newColumn(null).withTitle('').notSortable()
.renderWith(function(data, type, full, meta) {
return '<input type="checkbox" ng-model="showCase.selected[' + data.id + ']"/>';
}));
for (var key in $scope.VoiceProducts[0]) {
if (key == "ProductName" || key == "LongDistanceMinutes" || key == "IsCallWaiting") {
dtColumns.push(
DTColumnBuilder.newColumn(key).withTitle(key)
)
}
$scope.dtColumns = dtColumns;
$scope.dtOptions = DTOptionsBuilder.newOptions()
.withOption('data', $scope.VoiceProducts)
.withOption('dataSrc', '')
angular.element('#dtVoice').attr('datatable', '')
}
$compile(angular.element('#dtVoice'))($scope);
Ниже мой json
[
{
"ProductList": [
{
"ProductName": "Voice",
"IsActive": false,
"IsDeleted": false,
"LongDistanceMinutes": "",
"IsCallWaiting": "",
"CallWaitingId": "",
"IsThreeWayCalling": "",
"IsCallerId": "",
"IsCallForwarding": "",
"IsCallRejection": "",
"ID": 552,
"OfferId": 0
}
],
"ID": 2,
"IsActive": false,
"IsDeleted": false,
"TypeName": "Voice"
}
]
Как поместить этот datatable внутрь аккордеона? Потому что, делая то, что я делаю, я не могу этого достичь.