Smart-Table "st-sort" не работает
Я использую angular v1.3.15. Я извлекаю данные, нажимая api и передавая их через область для смарт-таблицы, например,
![enter image description here]()
Вот формат данных "scope.rowCollection", как показано на консоли
![enter image description here]()
Данные заполняются штрафом, но когда я пытаюсь щелкнуть по заголовку таблицы и отсортировать его с помощью метода st-sort, значения таблиц пустуют, не сортируя столбцы. Вот мой фрагмент html
![enter image description here]()
Не могли бы вы рассказать мне, что именно я делаю неправильно. В тот момент, когда я использую свой собственный набор сбора данных (НЕ жестко закодированный), все значения таблицы переходят в haywire.
У меня есть чувство, что это связано с именами переменных, которые я использую в конце angular.
Любая помощь очень ценится.... Спасибо
Ответы
Ответ 1
После твоего комментария Никил. Используйте st-safe-src, например:
HTML
<table st-table="displayedCollection" st-safe-src="rowCollection">
<thead>
<tr>
<th st-sort="firstName">First Name</th>
<th st-sort="lastName">Last Name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in displayedCollection">
<td>{{row.firstName}}</td>
<td>{{row.lastName}}</td>
</tr>
</tbody>
</table>
JS
app.controller('Ctrl', function($scope, service) {
$scope.displayedCollection = [];
service.all.then(function(list) {
$scope.rowCollection = list;
$scope.displayedCollection = list;
});
});
Что это.
Ответ 2
Если вы вводите данные асинхронно (из удаленной базы данных, спокойной конечной точки, вызова ajax и т.д.), вы должны использовать атрибут stSafeSrc. Вы должны использовать отдельную коллекцию как для базовых, так и для безопасных коллекций, или вы можете закончиться бесконечным циклом.
Так как я получаю данные от спокойной службы
st-table = "displayCollection" st-safe-src= "rowCollection"
решить мою проблему
Ответ 3
Я думаю, что он пытается сортировать по row.name так, как вы его кодируете. Попробуйте выполнить следующее:
st-sort="employee.name"