离子动作表不会隐藏

时间:2015-08-01 03:47:29

标签: javascript angularjs ionic-framework ionic

当我点击删除时,操作表单在成功删除后不会隐藏。有没有办法可以从deletePicture函数调用取消?

$scope.deletePicture = function(post_id, pic_id, index){
     PostService.DeletePic(post_id, pic_id, $localStorage.CurrentUser.auth_token)
      .success(function (data) {
     $scope.pics.splice(index);
     hideSheet(); //doesn't Hide the action sheet
              }).
            error(function(error,status) {
          })   
    } 
$scope.update_or_delete = function(post_id,pic_id,index){

 $ionicActionSheet.show({
      titleText: 'Edit Photo',
      buttons: [
        { text: 'Change' },      
      ],
      destructiveText: 'Delete',
      cancelText: 'Cancel',
      cancel: function() {
        console.log('CANCELLED');
      },
      destructiveButtonClicked: function() {
                  $scope.deletePicture(post_id,pic_id,index);
                },

      buttonClicked: function(index) {
       if(index === 0){ // Camera BUtton
         $scope.changePicture();
       }
        return true;
      }
    });
  };

1 个答案:

答案 0 :(得分:1)

您必须从destructiveButtonClicked回调中返回true才能自动关闭操作表。

来自文档:

  

destructiveButtonClicked :在破坏性时调用   单击按钮。 返回true表示关闭操作表,或false表示   保持开放。

所以在你的情况下,它将是:

  $ionicActionSheet.show({
      titleText: 'Edit Photo',
      buttons: [{
          text: 'Change'
      }, ],
      destructiveText: 'Delete',
      cancelText: 'Cancel',
      cancel: function() {
          console.log('CANCELLED');
      },
      destructiveButtonClicked: function() {
          $scope.deletePicture(post_id, pic_id, index);
          return true;
      },

      buttonClicked: function(index) {
          if (index === 0) { // Camera BUtton
              $scope.changePicture();
          }
          return true;
      }
  });

您可以查看演示here