angglarjsでhttp要求を同期して実行する方法を解決します。
以下の通りです
ネット上の例は全部$qで、promiseで実現します。試しましたが、だめです。自分の問題です。
そしていきなり$http自体がpromiseの対象に戻ると思いましたが、そのまま使ったらどうですか?コードは以下の通りです
以上のこの解決方法はangglarjsの中でhttp要求を同時に実行する方法です。小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。
self.tableParams = new NgTableParams({}, {
getData: function (params) {
$http.post("rest/staff/page", $scope.req).success(function (data) {
if (data != null && data != undefined) {
$scope.staffs = data.data;
params.total($scope.totalPage);
}
}).error(function (data) {
$("#serverErrorModal").modal({show: true});
});
return $scope.staffs;
}
});
上記の例では、get Data方法は、http要求によって返される値を得るが、anglarjsではhttpは永遠に非同期であり、つまりreturnの値は常に空になる。ネット上の例は全部$qで、promiseで実現します。試しましたが、だめです。自分の問題です。
そしていきなり$http自体がpromiseの対象に戻ると思いましたが、そのまま使ったらどうですか?コードは以下の通りです
self.tableParams = new NgTableParams({'count': 10} , {
getData: function (params) {
var promise = $http.post("rest/staff/page", $scope.req);
return promise.then(function (resut) {
var response = resut.data;
var total = response.otherData[0];
params.total(total);
return response.data;
});
}
});
そのままreturnで同期してデータを取得することができます。以上のこの解決方法はangglarjsの中でhttp要求を同時に実行する方法です。小編集は皆さんに全部の内容を共有しています。参考にしてもらいたいです。どうぞよろしくお願いします。