zoukankan      html  css  js  c++  java
  • angular的subscribe

      angular中可以使用observable和subscribe实现订阅,从而实现异步。

      这里记录一个工作中的小问题,以加深对subscribe的理解。前端技能弱,慢慢积累中。

      本来希望的是点击一个按钮后出现一个loading的模态框,实际发现并没有出现loading的模态框。

      

      按钮和模态框的代码,点击删除按钮后,出现模态框,删除按钮消失

    <div *ngIf = "rotateState === 0">
         loading 模态框
    </div>
    <div *ngIf = "rotateState === 1">
         <button   (click) = "delete()">删除</button>
    </div>

      delete方法的代码:

    delete(id: any){
        this.rotateState =0;
        this.deleteInterface(id).subscribe(res =>{
            ...
           },error=>{
             ...
           })
    }

      deleteInterface是调用后台restful接口的一个方法,返回的是一个observable对象。

           测试发现第一次删除是好的,有模态框显示,但是后来就不会出现删除按钮了,于是在代码的最后加上了this.rotateState =1;

    delete(id: any){
        this.rotateState =0;
        this.deleteInterface(id).subscribe(res =>{
            ...
           },error=>{
             ...
           })
           this.rotateState =1;  
    }

      这样每次点开有删除按钮,模态框却没有了。

          observable和subscribe是异步的,点击按钮触发delete方法后,不会等待restful的调用,执行this.rotateState =1就不会显示等待的模态框了。

    delete(id: any){
        this.rotateState =0;
        this.deleteInterface(id).subscribe(res =>{
            ...
            this.rotateState =1;  
           },error=>{
             ...
             this.rotateState =1;  
           })      
    }

            这样就可以保证多次打开后都有按钮,并且有等待的模态框。

      

  • 相关阅读:
    项目部署工具之walle
    Windows下的终端工具-Terminal
    golang之基础语法
    git之常见问题
    vue之项目部署
    技术电子书汇总
    clickhouse之安装与基本使用
    nginx配置之Gzip压缩
    Selenium登录验证码解决方案细解
    Python Selenium自动化测试PO设计模式实战
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/9926217.html
Copyright © 2011-2022 走看看