web-dev-qa-db-ja.com

スマートテーブルの「st-sort」が機能しない

私はangular v1.3.15を使用しています。APIをヒットしてデータをフェッチし、スコープを介してスマートテーブルに渡します。

enter image description here

これは、コンソールに表示される「scope.rowCollection」のデータ形式です

enter image description here

データは正常に入力されますが、テーブルヘッダーをクリックしてst-sortメソッドを使用して並べ替えようとすると、テーブルの値が空白になり、列が並べ替えられません。ここに私のHTMLスニペットのビューがあります

enter image description here

正確に私が間違っていることを教えてください。自分のデータコレクションセットを使用した瞬間(ハードコーディングされていません)、テーブルの値全体がおかしくなっています。私はangularの終わりに使用している変数名と何か関係があると感じています。どんな助けでも大歓迎です...ありがとう

12
Nikhil Nanjappa

コメントNikhilに続いて。 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;
    });
});

それでおしまい。

29
Luis Crespo

データを非同期で(リモートデータベース、レストフルエンドポイント、ajax呼び出しなどから)取り込む場合は、stSafeSrc属性を使用する必要があります。基本コレクションと安全コレクションの両方に別個のコレクションを使用する必要があります。そうしないと、無限ループになる可能性があります。

Restfulサービスst-table = "displayedCollection" st-safe-src = "rowCollection"からデータを取得しているので、問題が解決します

5
Nayyar Abbas

あなたがコーディングした方法でrow.nameをソートしようとしていると思います。次のことを試して、機能するかどうかを確認します。

     st-sort="employee.name"
1
Kay Tsar