Javascript 角度-检查是否选择了所有选项以启用按钮

Javascript 角度-检查是否选择了所有选项以启用按钮,javascript,angular,typescript,click,angular-directive,Javascript,Angular,Typescript,Click,Angular Directive,这是一个测验应用程序,在这种情况下,“我的下一步”按钮将重定向到另一个页面,它在默认情况下被禁用如果我选择了它应该启用的所有选项 注意: 我选择选项和选择正确/错误的功能运行良好,我只是不知道如何在选择每个选项时启用。 有什么帮助或建议吗? 工作演示: 下一个 您可以使用Object.keys,如下所示 App.component.html <button class="btn-next" [disabled]="isDisabled()">

这是一个测验应用程序,在这种情况下,“我的下一步”按钮将重定向到另一个页面,它在默认情况下被禁用如果我选择了它应该启用的所有选项

注意:

我选择选项和选择正确/错误的功能运行良好,我只是不知道如何在选择每个选项时启用。

有什么帮助或建议吗? 工作演示:


下一个

您可以使用Object.keys,如下所示

App.component.html

<button class="btn-next" [disabled]="isDisabled()">
    Next
  </button>

答案会起作用,但你可以按这里所示的角度进行:

有两种方法: 模板驱动或反应式表单

然后可以将禁用的属性绑定到表单有效属性


选择最适合你需要的。希望这会有帮助。

我的想法是将
按钮禁用的
定义为一个getter,然后评估每个问题的状态是否允许导航到下一页

在我的实现中,用户必须选择2类问题的所有答案,但只能选择1类问题的一个答案。如果这不是你想要的,请在评论中说明,这对我来说是合乎逻辑的。我希望它已经对你有帮助了

有问题吗?问问吧


如果用户选择了正确的答案,这无关紧要,对吗?是的。意思是说,答案不应该被取消选择或留下,你可以说。否则用户将无法继续。我希望您能理解,它会更早地启用2-3个选项,为什么会这样?当所有5个问题都得到回答时,该按钮会激活。现在,在您的情况下,当我单击最后一个选项时,该按钮会激活。也就是说,如果我选择了所有其他问题的答案,然后单击剩余问题的任何选项,它将启用该按钮。请在stackblitz中编辑,您可以更好地理解我想说的话尝试我的版本,我认为这会起作用,但编辑我制作的内容不需要时间吗?是的,这会增加所需时间。因此,下一次,当您构建窗体时,可以考虑这一点。
<button class="btn-next" [disabled]="buttonDisabled">
  Next
</button>
<button class="btn-next" [disabled]="isDisabled()">
    Next
  </button>
isDisabled(): boolean {
  return Object.keys(this.answerEvaluation).length !== Object.keys(this.practiceQuizData).length;
}