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;
})
}

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

  

angular的subscribe的更多相关文章

  1. 对Promise的一些深入了解

    1.介绍promise和模仿Promise.all和Promise.race promise的设计主要是解决回调地狱(接收结果用回调函数来处理,但必须传入回调函数)的问题,由一层层嵌套回调函数改为由t ...

  2. TypeScript: Angular 2 的秘密武器(译)

    本文整理自Dan Wahlin在ng-conf上的talk.原视频地址: https://www.youtube.com/watch?v=e3djIqAGqZo 开场白 开场白主要分为三部分: 感谢了 ...

  3. 后端学 Angular 2 —— 组件间通信

    1. 父组件向子组件传递信息 使用@Input 子组件的属性用 @Input 进行修饰,在父组件的模板中绑定变量 例子: import { Component, OnInit, Input } fro ...

  4. Angular数据双向绑定

    Angular数据双向绑定 AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中.Angul ...

  5. [Angular2 Router] Exiting an Angular 2 Route - How To Prevent Memory Leaks

    In this tutorial we are going to learn how we can accidentally creating memory leaks in our applicat ...

  6. [Angular2 Form] Use RxJS Streams with Angular 2 Forms

    Angular 2 forms provide RxJS streams for you to work with the data and validity as it flows out of t ...

  7. Redux你的Angular 2应用--ngRx使用体验

    Angular2和Rx的相关知识可以看我的Angular 2.0 从0到1系列第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2 ...

  8. Angular 2.0 从0到1:Rx--隐藏在Angular 2.x中利剑

    第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...

  9. Angular 2.0 从0到1 (七)

    第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...

随机推荐

  1. C++学习(二十九)(C语言部分)之 顺序表

    一.数据结构组织 存放数据的方式 精心选择的数据结构可以提升效率 数据结构 1.逻辑结构 一对多关系 父与子 一对一关系 排队中 多对多关系 两地的路线 2.存储结构 数据存放的位置关系 顺序存储数据 ...

  2. 《DSP using MATLAB》Problem5.16

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  3. 【liunx】时间处理函数

    一.脚本示例 [mylinuxaccount@linux01 ~]$ date +%Y%m%d 20171224 [mylinuxaccount@linux01 ~]$ date +%F 2017-1 ...

  4. 快速挂载iso文件到虚拟机系统

    在vm软件菜单栏那里选择vm,再选择弹出菜单最下面的设置,如图,找到实体机上的iso文件,保存. 这时候,在虚拟机ls /dev会发现有一个cdrom,这个就是我们的iso文件,不过我们还需要把它挂载 ...

  5. <--------------------------Java多态如何使用------------------------------>

    11多态调用的三种格式 * A:多态的定义格式: * 就是父类的引用变量指向子类对象 父类类型 变量名 = new 子类类型(); 变量名.方法名(); * B: 普通类多态定义的格式 父类 变量名 ...

  6. NonAction与ChildActionOnly

    NonAction 表示它不是一个真正的Action,而是一个普通方法: ChildActionOnly 表示它只能在View中通过Html.Action或Html.RenderAction来使用

  7. node inspector

  8. checkbox复选框,如何让其勾选时触发一个事件,取消勾选时不触发

    <input type="checkbox" onclick="checkboxOnclick(this)" /> <script> f ...

  9. less命令详解

    Linux less命令 less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件 语法: less [ ...

  10. typedef定义数组类型

    typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) typedef ...