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"