Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 禁用事件ike单击fa图标或typescript中的任何文本_Html_Angular_Typescript - Fatal编程技术网

Html 禁用事件ike单击fa图标或typescript中的任何文本

Html 禁用事件ike单击fa图标或typescript中的任何文本,html,angular,typescript,Html,Angular,Typescript,我正在做一个喜欢角按钮。所以,我使用fa-fa竖起大拇指来显示ngclass中的白色背景和彩色背景。所以,在击球时。它将调用一个typescript函数,并将使用API更改ngclass和updpate服务器端 现在,我想要的是再次舔拇指。它将切换(正在发生)。并调用该API。因此,在得到响应之前的这段时间内,我想禁用click函数(click)=“toggle()” {{likedBy.length} 切换() { this.isLiked=!this.isLiked; ....//呼叫可观

我正在做一个喜欢角按钮。所以,我使用fa-fa竖起大拇指来显示ngclass中的白色背景和彩色背景。所以,在击球时。它将调用一个typescript函数,并将使用API更改ngclass和updpate服务器端

现在,我想要的是再次舔拇指。它将切换(正在发生)。并调用该API。因此,在得到响应之前的这段时间内,我想禁用click函数(click)=“toggle()”


{{likedBy.length}
切换()
{
this.isLiked=!this.isLiked;
....//呼叫可观察
}

试试这个,这会解决你的问题。向类中添加属性。然后单击切换将其设置为
true

isProcessing: boolean

toggle(){
    if(this.isProcessing){ return; }
    this.isProcessing= true;
    // api call goes here 
}
当api返回响应成功或错误集时也是如此

this.isProcessing = false;
这样,无论何时已经有一个api调用在进行中,它都不会再次触发它


希望这有帮助:)

试试这个,这会解决你的问题。向类中添加属性。然后单击切换将其设置为
true

isProcessing: boolean

toggle(){
    if(this.isProcessing){ return; }
    this.isProcessing= true;
    // api call goes here 
}
当api返回响应成功或错误集时也是如此

this.isProcessing = false;
这样,无论何时已经有一个api调用在进行中,它都不会再次触发它


希望这对您有所帮助:)

您可以在组件中定义一个标志,并在您调用的方法中使用它来跟踪它是否正在被处理。从服务获得响应后重置标志。下面是伪代码

isProcessing:boolean = false;

HitLike() {
    if(!isProcessing) {
        this.isProcessing = true;            
        this._yourServiceInstance._serviceMethod.subscribe(result => {
            if(res.success) {
                //change class of button
                this.isProcessing = false;
            }
        }, error => {
            //change button class and show a relevant message
            this.isProcessing = false;
        });
    }
}

您可以在组件中定义一个标志,并在调用的方法中使用它来跟踪是否正在处理它。从服务获得响应后重置标志。下面是伪代码

isProcessing:boolean = false;

HitLike() {
    if(!isProcessing) {
        this.isProcessing = true;            
        this._yourServiceInstance._serviceMethod.subscribe(result => {
            if(res.success) {
                //change class of button
                this.isProcessing = false;
            }
        }, error => {
            //change button class and show a relevant message
            this.isProcessing = false;
        });
    }
}

无意冒犯,但15分钟后我的回答似乎与此相似。另外,您可能忘记将标志设置为true。这应该在调用api之前完成。@Manish感谢您指出这一点。我觉得OP会从一个更详细的伪代码中受益,这个伪代码也解释了订阅的概念。无意冒犯,但看起来与我15分钟后的回答相似。另外,您可能忘记将标志设置为true。这应该在调用api之前完成。@Manish感谢您指出这一点。我觉得OP会从一个更详细的伪代码中受益,这个伪代码也解释了订阅的概念。是的,在等待min time完成交叉,在等待min time完成交叉