Ionic 3和Angular 4:使用基于令牌的Restful API插入和删···

发布时间:2025-08-31 20:13:05 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:这是关于使用Ionic和Angular JS开发移动应用程序的一系列文章。这篇文章涉及更新和删除应用程序上的任何帖子。这也解释了如何通过进行Ajax调用来显示加载图

这是关于使用Ionic和Angular JS开发移动应用程序的一系列文章。这篇文章涉及更新和删除应用程序上的任何帖子。这也解释了如何通过进行Ajax调用来显示加载图像。在删除帖子时,它会显示一条警告消息,以确认是否删除。这篇文章就是这个。希望你们都能利用Ionic和Angular上的这一系列文章来构建自己的移动应用程序。

数据库设计 要构建用户订阅源系统,您必须创建两个表,例如Users和Feed。 您可以查看我之前的教程,了解如何 创建基于令牌的API系统 用户 用户表包含所有用户注册详细信息。
CREATE TABLE  用户 user_id  int  AUTO_INCREMENT  PRIMARY KEY 用户名 varchar (50), 密码 varchar (300), 名称 varchar (200), 电子邮件 varchar (300));
Feed 此表包含用户每日更新。
CREATE TABLE  feed feed_id  int  PRIMARY KEY  AUTO_INCREMENT feed  text user_id_fk  int created  int );
下载PHP Restul项目
$ git clone  https://github.com/srinivastamada/PHP-Slim-Restful.git
PHP RestFul 代码使用Slim框架的简单PHP代码,包括 用于用户插入和删除操作的 新函数 feedUpdate feedDelete
<?PHP的 要求  的config.php;  要求   Slim / Slim.php;  \ Slim \ Slim ::  registerAutoloader ();  $ app = new \ Slim \ Slim();  $ app->  post (/ login,  login  );  / *用户登录* / $ app->  post (/ signup,  signup  );  / *用户注册* / $ app->  post (/ feed,  feed  );  / * User Feeds * / $ app->  post (/ feedUpdate,  feedUpdate  );  / *用户Feed更新* / $ app->  post (/ feedDelete,  feedDelete  );  / *用户Feed删除* / $ app-> 运行 ();  //其他函数 函数   feedUpdate (){      $ request = \ Slim \ Slim ::  getInstance () - >  request ();      $ data = json_decode($ request-> getBody());      $ user_id = $ data->  user_id  ;      $ token = $ data->  token  ;      $ feed = $ data->  feed  ;      $ systemToken = apiToken($ USER_ID);       try  {          if($ systemToken == $ token){              $ feedData =;              $ db = getDB();              $ sql =“  INSERT INTO feed(feed,created,user_id_fk)VALUES                           ( :feed  :created  :user_id   “;              $ stmt = $ db->  prepare ($ sql);              $ stmt->  bindParam (”feed“,$ feed, PDO :: PARAM_STR );              $ stmt->  bindParam (”user_id“, $ user_id, PDO :: PARAM_INT );              $ created =  time ();              $ stmt-> bindParam(“created”,$ created,   PDO :: PARAM_INT );              $ stmt-> execute();              $ sql1 =“  SELECT * FROM feed WHERE user_id_fk =  :user_id  ORDER BY                              feed_id DESC LIMIT 1  “;             $ stmt1 = $ db->  prepare ($ sql1);              $ stmt1->  bindParam (“user_id”,$ user_id,   PDO :: PARAM_INT );              $ stmt1->  execute ();              $ feedData = $ stmt1->  fetch (PDO :: FETCH_OBJ);              $ db = null;              echo{“feedData”:。 json_encode ($ feedData)。 };          } else {              echo{“error”:{“text”:“No access”}};          }      }  赶上 (PDOException $ E){          回声{ “错误”:{ “文”:。 $ e-> getMessage()。  }};      }  功能   feedDelete (){      $ request = \ Slim \ Slim ::  getInstance () - >  request ();      $ data = json_decode($ request-> getBody());      $ user_id = $ data->  user_id  ;      $ token = $ data->  token  ;      $ feed_id = $ data->  feed_id  ;      $ systemToken = apiToken($ USER_ID);       try  {          if($ systemToken == $ token){              $ feedData =;              $ db =  getDB ();              $ sql =“  DELETE FROM feed WHERE user_id_fk =  :user_id  AND                           feed_id =  :feed_id  ”;             $ stmt = $ db->  prepare ($ sql);              $ stmt->  bindParam (“user_id”,$ user_id,   PDO :: PARAM_INT );              $ stmt->  bindParam (“feed_id”,$ feed_id,   PDO :: PARAM_INT );              $ stmt->  execute ();              $ db = null;               echo  {“success”:{“text”:“Feed deleted”}};          } else {               echo  {“error”:{“text”:“No access”}};          }      }  赶上 (PDOException $ E){           回声  { “错误”:{ “文”:。 $ E->  getMessage()。}};      }  ?>
home.ts 转到主页组件并包含 feedUpdate feedDelete 函数。 这些功能与源更新和删除API连接以进行数据库更改。 使用 unshift  javascript内置函数将feedUpdate结果推送到dataSet feed对象。
@ angular / core 导入  {Component}  ionic-angular 导入   {NavController,App, AlertController  }     “  ../../providers/auth-service  ”  导入   {AuthService}     “  ../../providers/common  ”  导入   {Common}   Component ({selector:  page-home  ,templateUrl:  home.html  }) export  class  HomePage  {  public  userDetails:any;  上市     resposeData:any;     公共数据集   :任何;    userPostData = {      “user_id”:“”,     “token”:“”,     “feed”:“”,     “feed_id”:“”    };     构造函数 public   common:Common,   public   alertCtrl:AlertController,   public  navCtrl:NavController,   public   app:App,   public   authService:AuthService){       const  data =  JSON 解析 localStorage的 的getItem ( 用户数据));      this.userDetails = data.userData;     this.userPostData.user_id = this.userDetails.user_id;      this.userPostData.token = this.userDetails.token;      这个。 getFeed ();    }     getFeed (){      // feed details function   }     feedUpdate (){      if(this.userPostData.feed){        this.common。 presentLoading ();        this.authService。 POSTDATA (this.userPostData “  feedUpdate  ”)          。 然后((结果)=> {            this.resposeData =结果;            如果(this.resposeData.feedData){              。this.common  closeLoading ();             this.dataSet。 unshift (this.resposeData.feedData);              this.userPostData.feed =“”;            } else {               console log (“无访问权限”);            }          ,(err)=> {            //连接失败消息         });      }    }     feedDelete (FEED_ID,msgIndex){      如果(FEED_ID> 0){        让警报= this.alertCtrl。 创建 ({            title:删除Feed,           消息:  你想买这个Feed?  ,           按钮:[              {                text:  取消               role:cancel,               handler :()=> {                   console log (Cancel clicked);                }              ,{                text:  Delete  ,               handler:()=> {                  this.userPostData.feed_id = feed_id;                  this.authService。 POSTDATA (this.userPostData “  feedDelete  ”)                    。 然后((结果)=> {                      this.resposeData =结果;                      如果(this.resposeData.success){                        。this.dataSet  拼接 (msgIndex,1);                     } else {                         console log (“无访问权限”);                      }                    ,(err)=> {                      //连接失败消息                   });                }              }            ]          });        alert.present();      }    }  }
对于使用Ionic警报控制器实现的删除功能。 创建预加载提供 程序使用Ionic generate命令创建新提供程序。 如果这不起作用,请按照我以前的文章。
ionic  生成 提供者 常见
commont.ts 导入的离子加载控制器,用于实现API调用的预加载功能。 这是最常用的,因此我们将其作为可注射的提供者创建。
@ angular / core 导入   {Injectable}  ionic-angular 导入   {LoadingController}   注射 () 出口 常见  {        公共 装载机:任;        构造函数 public   loadingCtrl:LoadingController){           console log (Hello Common Provider);        }        presentLoading (){           this.loader = this.loadingCtrl。 create ({content:“Please wait ...”})          this.loader.present();        }  closeLoading (){          this.loader。 解雇 ();        }  }
app.module.ts 在应用程序模块中导入新插件。 现在转到 src / app / app.module.ts 并导入 Common  for API预加载。
@ angular / core 导入  {NgModule,ErrorHandler}  @ angular / platform-browser 导入   {BrowserModule}   @ angular / http 导入   {HttpModule}   ionic-angular 导入   {IonicApp,IonicModule,IonicErrorHandler}   ./app.component 导入   {MyApp}   ../providers/auth-service 导入   {AuthService}   从中 导入  {SplitPane}  ../providers/split-pane  ;  ../providers/common 导入   {Common}   ../pages/welcome/welcome  导入  {Welcome}   ../pages/login/login  导入  {登录}   ../pages/signup/signup  导入  {注册}   ../pages/about/about 导入   {AboutPage}   ../pages/contact/contact 导入   {ContactPage}   进口  {HomePage}   来自 ../pages/home/home  ;  ../pages/tabs/tabs 导入   {TabsPage}   @ ionic-native / status-bar 导入   {StatusBar}   @ ionic-native / splash-screen 导入   {SplashScreen}   angular-linky 导入  {LinkyModule}   angular2-moment 导入   {MomentModule}   @NgModule ({    声明:[      MyApp,     AboutPage,     ContactPage,     HomePage,     Welcome,     Login,     Signup,     TabsPage    ],    import :[      BrowserModule,HttpModule,LinkyModule,MomentModule,     IonicModule.forRoot(MyApp)   ],    bootstrap :[IonicApp],    entryComponents :[      MyApp,     AboutPage,     ContactPage,     HomePage ,     欢迎,     登录,     注册,     TabsPage    ],    提供商 :[      StatusBar,     SplashScreen,AuthService,SplitPane, Common     {provide:ErrorHandler,useClass:IonicErrorHandler}    ]  }) export  class  AppModule  {}
构建iOS应用程序 按照执行Xcode构建的命令,观看视频教程,您将了解更多。
cordova 添加 平台   ios ionic  build  ios
构建Android应用程序 使用Android SDK打开Android构建>
$   cordova   添加   平台   android $   ionic   build  android

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!