重定向删除确认按钮Angular

时间:2017-06-27 18:06:15

标签: angularjs

当我点击“删除”按钮时,会出现确认对话框。如果响应为是,我想删除评论(重定向到deleteReview)并刷新页面,如果答案是否,我想取消对话框。但我不确定如何正确地重定向。

点击删除按钮后出现此方法:

$scope.showConfirm = function(ev,index) {
// Appending dialog to document.body to cover sidenav in docs app
    var confirm = $mdDialog.confirm()
      .title('Would you like to delete your review?')
      .textContent('Your review will be deleted.')
      .targetEvent(ev)
      .ok('Yes')
      .cancel('No');debugger;

    $mdDialog.show(confirm).then(function() { 
  //IF YES redirect to deleteReview and refresh page
    }, function() {
   //IF NO cancel
    });
};

这是我的deleteReview功能:

 $scope.redirectDelete = function(index){debugger;
        $scope.all[index].id; console.log($scope.all[index].id);debugger;
        var JSONObject={
            "id":$scope.all[index].id
        }

        var Results = UniversalService.DeleteReview(JSON.stringify(JSONObject));debugger

    };

这是html按钮:

<md-button class="md-warn md-raised" ng-click="showConfirm($event,$index)" > Delete </md-button>

1 个答案:

答案 0 :(得分:1)

从promise回调中调用$scope.redirectDelete(index);,同时在$scope.all.splice(index,1);方法中添加redirectDelete,将其从客户端阵列中删除。

理想情况下,只有在服务器端成功删除后,才能将值从客户端的数组中拼接出来。这通常通过在解析服务器承诺时调用splice代码来完成,但我不确定您的UniversalService.DeleteReview方法返回什么。如果它是一个承诺,那么它看起来像这样:

UniversalService.DeleteReview(JSON.stringify(JSONObject)).then(function(results)
    $scope.all.splice(index,1);
});

AngularJS会看到数组已被修改并自动刷新视图。无需手动刷新页面。