为了账号安全,请及时绑定邮箱和手机立即绑定

angualr2中emit触发一个方法然后怎么获得这个promise的结果

angualr2中emit触发一个方法然后怎么获得这个promise的结果

慕田峪9158850 2018-11-15 14:11:21
现在写了一个direactive来代替click操作,在点击后按钮disable掉,比如click是调用登陆的方法,在登陆service的promise结束后恢复按钮。现在可以模拟click,把按钮disabled,但是获得不到promise的结果,请问有没有什么好的方法?//directive (大概的代码)@Output() czClick  = new EventEmitter();@HostListener("click",["$event"])    onClick(e){        this.renderer.setElementAttribute(this.element.nativeElement,'disabled','true');        this.czClick.emit(e);          }//html<button cz-click (czClick)="login()">登录</button>主要就是this.czClick.emit(e);这边获得不到login的promise结果,就不能在结束状态修改button的效果。求教0-0
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

EventEmitter应该没办法获得获得响应结果,毕竟emit一个事件可能会有n个监听这个事件的元素

可以考虑对参数下手,emit一个{ e, callback }的对象出去,在事件响应方法里调用这个callback

更好的方法应该是在directive上加个@Input,再implements OnChanges接口,监听这个@Input属性变化
然后在component里绑定这个@Input属性吧


查看完整回答
1 反对 回复 2018-12-17
  • 1 回答
  • 0 关注
  • 590 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信