- Мне нужно разработать таблицу в угловых js, чтобы показать данные сторонних производителей (и, следовательно, данные не могут быть изменены).
- Данные, которые будут показаны, полностью динамичны в том количестве или последовательности столбцов, которые могут быть изменены в любое время.
- Значение, которое должно отображаться, может быть числом или строкой или датой, которая определяется данными третьей стороны.
- Мне нужно сортировать таблицу при нажатии на любой из заголовков
- Мне известны некоторые методы, как использование | число фильтр и т. д., но он не работает в этой динамической среде.
Следовательно, мне нужно сделать мой стол полностью динамичным. Однако я столкнулся с проблемами при использовании порядка, так как сортирует даже числа и даты, рассматривая их как строку.AngularJS orderby сортирует число и даты, обрабатывая их как строку
<table>
<td ng-repeat="key in keys(Header[0])" ng-click="maintainOrder(key)" >
<span>{{Header[0][key]}}</span>
</td>
<tr ng-repeat="singleRow in data | orderBy:orderByCriteria:reverseSort" >
<td ng-repeat="key in keys(data[0])" >
{{singleRow[key]}}
</td>
</tr>
</table>
$scope.maintainOrder = function(key)
{
$scope.orderByCriteria = key;
$scope.reverseSort = ! $scope.reverseSort;
};
$scope.keys = function(obj){
console.log((Object.keys(obj)));
return obj? Object.keys(obj) : [];
};
$scope.data= [
{
"quantity" : "85",
"type" : "mango",
"expiryDate" : "15/09/2015"
},
{
"quantity" : "9",
"type" : "orange",
"expiryDate" : "5/07/2015"
},
{
"quantity" : "66",
"type" : "apple",
"expiryDate" : "25/09/2015"
},
{
"quantity" : "95",
"type" : "mango",
"expiryDate" : "31/08/2015"
}
];
$scope.Header= [
{
"quantity" : "Qty ",
"type" : "Type",
"expiryDate" : "Expiry_Date"
}];
Я включил скрипку за то же самое: fiddle link
Ну, ваши цифры не цифры, а строки. И то же самое для ваших дат. Сделайте их номерами и датами, и все будет хорошо. –
Но, как я сказал, я не могу внести никаких изменений в данные сторонних разработчиков – shubh
Да, вы можете. Просто используйте JavaScript, чтобы преобразовать сторонние строки в числа или даты перед их сортировкой. Конечно, если вы даже не можете знать, что должен содержать столбец, тогда вся надежда теряется (за исключением использования эвристики, чтобы угадать тип и формат столбца на основе того, что он содержит). –