4

テーブルを作成し、http を使用してテーブルにデータをロードしています。そのため、クリックするたびにテーブル データが変更されますが、更新されたデータがテーブルに表示されません。参照用にサンプルのプランカーを作成しました。私のプロジェクトでは、[新しいデータの再読み込み] をクリックすると、テーブルのデータが変更されますが、2 ~ 3 回クリックしても変更されません。誰でも知っている、それを修正する方法..

4

6 に答える 6

4

ngTable ディレクティブの問題です。変更時のみ更新しdata.lengthます。このプランクを見てください。$scope['tableParams1'] を null に設定し、内部で$timeout新しいデータを設定します。これにより、angularJs に新しいサイクルが強制されます。したがって、最初のサイクルで ngTable は data.length が 0 に変更されたことを確認し、新しいサイクルで ngTable は data.length が再び変更されたことを確認します。$timeout を使用しない場合、ngTable は data.length が以前と同じままであることを認識し、何もしません。

于 2014-04-27T17:22:57.140 に答える
3

提供されたメソッドを直接使用できます$scope.tableParams.reload();

于 2015-06-01T10:23:57.203 に答える
0

この問題を解決するにはng-controller="yourController"、ページで を 1 回だけ設定していることを確認してください。

以下のコードはデータを更新しません:

<div ng-controller="yourController">
  <table ng-table = "tableParams" ng-controller = "yourController">
  </table>
</div>

ng-controllerHTML ページの余分なものを削除して、問題を解決します。

<div ng-controller="yourController">
  <table ng-table = "tableParams">
  </table>
</div>
于 2016-04-06T05:05:49.333 に答える
0

私は動的データを含むngテーブルにも取り組んでいました(追加/削除)、
ajax呼び出しを使用してデータベースに変更を加えていましたが、success: function() {}プロパティは変更を加えましたtableParams
が、更新しない限り変更はページに表示されませんでした実際には実行されないことがconsole.log()わかりましたが、常に 実行される別の関数があり ます。呼び出しが成功した後にのみ機能するはずのコードを配置するのは論理的に間違っていることはわかっていますが、関数がそうでない場合特に、変更がデータベースに対して常に正常に行われることを知っていると 、成功の呼び出しが Web サイトの他のページでは機能するが、他のページでは機能しないため、奇妙です。 編集:success: function() {}
complete: function() {}complete: function() {}success:

さて、上記の「データ内のテキストの編集」でデータの長さが変わらない場合、この修正でも問題は解決しませんが、イライラします...

$.ajax({
        type: "POST",
        url: /*some url*/,
        data: JSON.stringify({ /*some variable*/ }
        }),
        contentType: "application/json; charset=utf-8",
        dataType: "Json",
        success: function () {  // would never execute even if it's a successful call
            console.log("success"); 
        },
        error: function() {  // optional, personally didn't try it
            console.log("error"); 
        }
        complete: function () {  //always executes regardless of the result
            console.log("complete"); 
        }
    });
于 2014-11-27T11:28:09.697 に答える