html 在Angular 模式下单击时,按钮的单击不起作用

w6lpcovy  于 2023-10-14  发布在  Angular
关注(0)|答案(2)|浏览(233)

我正在使用angular中的模态弹出窗口,其中涉及模态弹出窗口中的提交按钮。来自父组件的模态弹出调用。我有点击事件的按钮,这是提交按钮,但它没有得到触发。它应该记录当我点击提交按钮。

父html

  1. <p>Start editing to see some magic happen :)</p>
  2. <button (click)="openModal(modal)" >open modal</button>
  3. <app-modal #modal [active]="isActive"> </app-modal>

modal. component. html//子组件

  1. <div [hidden]="!active">
  2. <div class="modal-background">
  3. </div>
  4. <div class="modal">
  5. <div class="modal-body">
  6. <h1>algun titulo</h1>
  7. <p>algun contenido</p>
  8. <button onSubmit="onSubmit()">
  9. Submit
  10. </button>
  11. </div>
  12. </div>
  13. </div>

modal.component.ts(子组件)

  1. import { Component, OnInit, Input } from '@angular/core';
  2. @Component({
  3. selector: 'app-modal',
  4. templateUrl: './modal.component.html',
  5. styleUrls: [ './modal.component.css' ]
  6. })
  7. export class ModalComponent implements OnInit {
  8. @Input() active: boolean ;
  9. ngOnInit() {
  10. }
  11. openModal(value) {
  12. value.active = true
  13. }
  14. onSubmit(){
  15. debugger;
  16. console.log('submit--->');
  17. }
  18. closeModal(value) {
  19. value.active = false
  20. }
  21. }
nle07wnf

nle07wnf1#

问题在于如何将click事件附加到modal.component.html中的按钮。
您已经在按钮上使用了onSubmit="onSubmit()",但这种语法更类似于传统的JavaScript或普通HTML。在Angular中,你需要使用(click)绑定到click事件。
以下是你应该如何改变你的按钮:

  1. <button (click)="onSubmit()">Submit</button>
2w3rbyxf

2w3rbyxf2#

应该使用Angular事件绑定语法调用onSubmit方法。此外,按钮缺少一个事件。
更新modal.component.html如下:

  1. <div [hidden]="!active">
  2. <div class="modal-background"></div>
  3. <div class="modal">
  4. <div class="modal-body">
  5. <h1>algun titulo</h1>
  6. <p>algun contenido</p>
  7. <button (click)="onSubmit()">
  8. Submit
  9. </button>
  10. </div>
  11. </div>
  12. </div>

相关问题