Ng-table: getData()は$ deferパラメーターを取得しません

作成日 2016年08月12日  ·  3コメント  ·  ソース: esvit/ng-table

こんにちは、みんな、

別のサービスから返されたpromiseの.then()呼び出しの内部からテーブルにデータを入力しようとしています。例:

function populateTable() {
  MyService.retrieve()
    .then( (response) => {
      vm.myTableData = new NgTableParams({
        count: 10,
        page: 1
      }, {
        total: response.length,
        getData: ($defer, params) => {
          // some other stuff, further filtering etc.
          params.total(response.length);
          $defer.resolve(response);
        }
      });
    })
    .catch($log.log);
}

それは私にそれを教えてくれます: $defer.resolve is not a function
そして、 $deferparams引数をコンソールアウトすると、 paramsは未定義であり、 $deferparams実際の値であることがわかります。
言い換えると、getDataは1つの引数のみで実行され、それがparamsの引数です。

それで、私はparams 、同期的に応答を返そうとします。

total: response.length,
getData: (params => {
  params.total(response.length);
  return response;
}

これでエラーなしでデータが返されますが、ページネーションが機能しなくなりました(ボタンは表示されますが、ボタンは何も実行せず、ページはデータセット全体にすぎません)。

だから...私は途方に暮れています。 オンラインのすべてのドキュメントと例では、 $deferを使用する必要があると言われていますが、なぜそれが利用できないのでしょうか。

何か案は?

最も参考になるコメント

typescript定義からAPIドキュメントを生成したいと思っています。

それまでの間、私の意見ではwikiを削除する必要があります。 そうすれば、誰かが見る唯一の場所は公式の例のサイトです

全てのコメント3件

ここでの問題は、ここのwikiが古くなっていることです-それはng-tableの古いバージョンを文書化しています。

最新のドキュメントについては、をご覧ください。

また、昨年かそこらで起こった重大な変更について詳しく説明している

ああ、わかりました。 これは、誰かが初めて実装しようとしていて、変更ログを注意深く監視していない場合、ひどく混乱します。 ドキュメントはまもなく更新されますか?

typescript定義からAPIドキュメントを生成したいと思っています。

それまでの間、私の意見ではwikiを削除する必要があります。 そうすれば、誰かが見る唯一の場所は公式の例のサイトです

このページは役に立ちましたか?
0 / 5 - 0 評価