ここに次のコードがあります(より明確にするためにいくつかの行が削除されています)。ユーザーが編集アイコンをクリックすると、editRow() 関数が呼び出され、モデル ウィンドウが開きます。この後、コードは factory.submitItem を呼び出して毎秒データを保存しようとします。データの保存に問題がある場合を除いて、すべて正常に動作します。
factory.submit item entityResource.update が失敗した場合に間隔がキャンセルされ、コードが毎秒保存を停止するようにするにはどうすればよいですか。
var factory = {
gridSetup: function ($scope) {
$scope.editRow = function (row, entityType) {
// modal stuff happens here
window.setTimeout(function () {
window.setInterval(function () {
factory.submitItem($scope, $scope.modal.data);
}, 1 * 60 * 1000);
factory.submitItem($scope, $scope.modal.data);
}, 1 * 60 * 1000);
}
},
submitItem: function ($scope, formData) {
var idColumn = $scope.entityType.toLowerCase() + 'Id';
var entityId = formData[idColumn];
switch ($scope.modal.action) {
case "edit":
var entityResource = $resource('/api/:et/:id', { et: $scope.entityType }, { update: { method: 'PUT' } });
entityResource.update({ id: entityId }, formData,
function (result) {
angular.copy(result, $scope.modal.data);
}, function (result) {
// what to put here ?
})
break;
}
},