Javascript 如何在angular 2中使用jQuery.on()和.off()的方式?

Javascript 如何在angular 2中使用jQuery.on()和.off()的方式?,javascript,jquery,angular,typescript,Javascript,Jquery,Angular,Typescript,我目前正在开发angular 2 web应用程序。实际上,每当我双击提交按钮时,操作都会发生两次。所以我想实现这个 我知道逻辑我们可以在单击提交按钮时禁用/启用带有标志的按钮 clickFunction() { isdisabled=false;// disable button if(isclicked) //service call back & clear the inputs isdisabled = true;//enable button } 但我不想手动操作。因此,任何

我目前正在开发angular 2 web应用程序。实际上,每当我双击提交按钮时,操作都会发生两次。所以我想实现这个

我知道逻辑我们可以在单击提交按钮时禁用/启用带有标志的按钮

clickFunction()
{
isdisabled=false;// disable button
if(isclicked)
//service call back  & clear the inputs
isdisabled = true;//enable button
}

但我不想手动操作。因此,任何关于使用angular2的方法的想法,你都可以使用angular2或4。请结帐

var source = Rx.Observable.fromEvent(document, 'mousemove');

var subscription = source.subscribe(function (e) {
  result.innerHTML = e.clientX + ', ' + e.clientY;
});

使用ng disabled应该可以满足您的需要。通常,$eval和$apply方法的执行时间不到1-2毫秒

编辑:

使用类似这样的东西来发出事件

<button ng-click="clicked()">button<>

使用flag跟踪单击

我不知道你说的“你不想手动操作”是什么意思。也许您正在寻找可以附加到HTML按钮的
[disabled]
属性

另外,请注意,我们在服务返回响应时禁用了该按钮。如果将其置于
subscribe()
方法之外,则可能会太快地启用该按钮

HTML
可能您可以尝试打开/关闭(启用/禁用)按钮

(document.getElementById(“buttonId”)).disabled=!(document.getElementById(“buttonId”)。已禁用;

请参考这个,您可能会有一些想法。我不喜欢使用Jquery代码。我想知道,如果可能的话,在angular 2中使用Jqery on()和off()的确切事件,这将引导您在不使用jquery的情况下得出一些结论,您真正想要的是什么?你说“我不想手工做”,这是什么意思?您正在寻找一个可以为您实现这一点的模块?我认为这里的问题是Angular是一个比jQuery更异步的模型,因此,在大多数情况下,在处理单击时简单地禁用按钮可能是不够的,因为您需要启动一些事件发射器或其他东西,并在重新启用按钮之前等待该操作完成。也许使用
Rx.Observable.debounce()
会对您有所帮助:不要在事件期间禁用按钮,只需忽略随后过快出现的任何重复单击?这是什么?这和我的问题有关系吗?我知道这个逻辑。但是我想使用事件发射器作为JQuery on off event来实现这一点问题不是关于AngularJs的,实际上我希望的是需要打开/关闭当前事件。有意义吗?实际上我忘记了
document.getElementById
。我和angular 2一起工作。不是Javascript您也可以在angular 2中使用
getElementById
(类型脚本)。此外,您必须将其强制转换为
HTMLInputElement
才能访问其本机属性,这就是我所做的。但我为什么需要它呢?angular支持双向绑定。那我为什么要实施这个呢?我对此有一个纯粹的想法,这在我的问题中得到了解释。但是我想关闭/打开click Event您对jQuery中switch属性的实现有什么疑问?在我看来,您想只使用jQuery来解决这个问题吗?
$scope.clicked() = function() {
   $scope.emit('clicked-once');
}



 $scope.on('clicked-once', function(event) {
  // do something here 
 })
<button (click)="doAction()" [disabled]="disabled">Click</button>
doAction() {
    disabled = true;
    this.myService.doServiceAction()
        .subscribe(result => {
            disabled = false
        })
}
(<HTMLInputElement>document.getElementById("buttonId")).disabled = !(<HTMLInputElement>document.getElementById("buttonId")).disabled;