gpt4 book ai didi

javascript - 如何禁止按下 "next"按钮,直到所有输入都更新

转载 作者:行者123 更新时间:2023-11-29 10:58:27 26 4
gpt4 key购买 nike

我在单个页面上有 30 多个输入。每个输入在 ng-blur(焦点丢失)上都有一个回调,它通过 $http AngularJS 服务调用远程 API。每个 api 请求都异步并行运行。用户可以多次编辑输入。每次触发 ng-blur 事件时,数据都会发送到服务器。

我还在页面底部有一个“下一步”按钮,用户在完成页面上的输入编辑后按下该按钮。如何禁止用户在每个 api PUT promise 完成之前按“下一步”按钮?如果某些 HTTP 请求因服务器上的 500 而失败怎么办?

最佳答案

在组件中使用标志 finished

在 View 中=>

<button type="submit" [disabled]="!finished">Add</button>

在组件中=>

public finished = false;

在 Promise 旁边 =>

   let promise1 = Promise.resolve(3);
let promise2 = 42;
let promise3 = new Promise(function(resolve, reject) {
setTimeout(resolve, 100, 'foo');
});

Promise.all([Promise1,Promise2,....]).then((...)=> {
finished =true; // your button will be enabled!!
})

您可以从 here 了解更多信息

您可以为每个 promise 使用标志 =>

public promiseF1 = false;
public promiseF2 = false;
public promiseF3 = false;
etc...

对于每个调用,在开始时将其设置为false,在调用结束时将其设置为true

所以 html 看起来像这样 =>

<button type="submit"[disabled]="!promiseF1 && !promiseF2 && !promiseF3 && etc...">
Add
</button>

关于javascript - 如何禁止按下 "next"按钮,直到所有输入都更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com