1

我已经应用了 Laravel 代码并测试了 API 来删除数据,它成功了。

现在我想将函数 delete 应用于 ionic。如何将其应用于警报功能?

.ts 文件

confirmdelete() {
  let alert = this.alertCtrl.create({
    title: 'Confirm Delete',
    message: 'Do you confirm to delete?',
    buttons: [
      {
        text: 'Cancel',
        role: 'cancel',
        handler: () => {
          console.log('Cancel clicked');
        }
      },
      {
        text: 'Yes',
        handler: () => {
          console.log('Yes clicked');
        }
      }
    ]
  });
  alert.present();
}

所以我在离子中进行删除时遇到问题。我认为我需要在 yes 处理程序中包含什么或什么?我仍然不确定。

api.php

public function deleteMed(Request $request)
{
    $id = $request->id;
    $medname = $request->medname;
    $price = $request->price;
    $stock = $request->stock;
    $medno = $request->medno;
    $ingredient = $request->ingredient;
    $description = $request->description;
    $addinfo = $request->addinfo;

    $user = AddMedicine::where('medno',  $request->input('medno'))->count();

    if($user!=0) {
        AddMedicine::where('id', $id)->delete([
            'id' =>$id,
            'medname'=>$medname,
            'price'=>$price,
            'stock'=>$stock,
            'medno'=>$medno,
            'ingredient'=>$ingredient,
            'description'=>$description,
            'addinfo'=>$addinfo,
        ]);

        $msg = "Data deleted";
        $datamsg = response()->json([
            'success' => $msg
        ]);

        return $datamsg->content();
    } else {
        echo'{"error":{"text":" Medicine does not exist"}}';
    }
}
4

2 回答 2

0

如果我理解您的要求正确,您将需要向您的删除端点发布一个 HTTP 请求。

你是对的,这应该进入警报“是”处理程序。

你会在里面放这样的东西:

this.http.post('url-of-your-delete-endpoint', {id: 123})
  .map(res => res.json())
  .subscribe(res => {
    // success
    console.log(res);
  }, err => {
    // error
    console.error(err);
  });

此示例使用Angular HttpClient

希望这能给你一个开始。

是做这类事情的另一个很好的指南。

于 2019-04-23T04:19:58.243 回答
0

您现在只需要调用 api 端点。您可以使用以下任一方式执行此操作

  1. Angular 的 HTTPClient
  2. 离子原生 HTTP

您可以选择适合您需求的。(我个人更喜欢 Ionic Native HTTP 来轻松应对 CORS 问题)

使用它们的一种方法是使用 HTTP/HTTPClient 在文件中创建一个用于 api 调用的函数,.ts例如(使用 Ionic Native HTTP):

async deleteData(){

      let url = 'http://localhost/api/api-endpoint-url'

      let params = {}; // for request params

      await this.http.post(url, params, {}).then(response => {

        console.log('from server: ', response);

      })
      .catch(error => {

        console.log('error: ',error);

      });

  }

然后在“是”处理程序中调用该函数:

confirmdelete() {
  let alert = this.alertCtrl.create({
    title: 'Confirm Delete',
    message: 'Do you confirm to delete?',
    buttons: [
      {
        text: 'Cancel',
        role: 'cancel',
        handler: () => {
          console.log('Cancel clicked');
        }
      },
      {
        text: 'Yes',
        handler: () => {
          console.log('Yes clicked');
          this.deleteData(); // call deleteData()
        }
      }
    ]
  });
  alert.present();
}
于 2019-04-23T05:09:10.843 回答