Javascript 角度4:按钮组件的禁用行为

Javascript 角度4:按钮组件的禁用行为,javascript,angular,typescript,web,button,Javascript,Angular,Typescript,Web,Button,我想将“禁用”行为传递给自定义按钮。下面代码的实际行为是,当表单中的所有字段都未填充时,该按钮被禁用。但当我填满所有东西时,按钮仍处于禁用状态。我有一种感觉,当页面被加载时,组件上的“禁用输入”被加载,但当表单被完全填充时,它永远不会被刷新,因此我无法单击按钮提交表单。该组件的目标是以不同的形式在多个页面中使用。有办法做到这一点吗 自定义按钮Html: <button type="button" class="btn btn-primary" disabled="disabled" (cl

我想将“禁用”行为传递给自定义按钮。下面代码的实际行为是,当表单中的所有字段都未填充时,该按钮被禁用。但当我填满所有东西时,按钮仍处于禁用状态。我有一种感觉,当页面被加载时,组件上的“禁用输入”被加载,但当表单被完全填充时,它永远不会被刷新,因此我无法单击按钮提交表单。该组件的目标是以不同的形式在多个页面中使用。有办法做到这一点吗

自定义按钮Html:

<button type="button" class="btn btn-primary" disabled="disabled" (click)="onClickButton()">{{ label }}</button>
{{label}
Custon按钮TS:

import { Component, Output, EventEmitter, Input } from '@angular/core';

@Component({
  selector: ' app-button-loader',
  templateUrl: './button-loader.component.html',
  styleUrls: ['./button-loader.component.css']
})
export class ButtonLoaderComponent {
  @Input() label: string;
  @Input() disabled: any;
  @Output() onClick = new EventEmitter<any>();

  constructor() { }

  onClickButton() {
    this.onClick.emit();
  }
}
import{Component,Output,EventEmitter,Input}来自“@angular/core”;
@组成部分({
选择器:“应用程序按钮加载程序”,
templateUrl:“./button loader.component.html”,
样式URL:['./按钮加载器.component.css']
})
导出类ButtonLoader组件{
@Input()标签:字符串;
@Input()已禁用:任意;
@Output()onClick=neweventemitter();
构造函数(){}
onClickButton(){
this.onClick.emit();
}
}
下面是我如何称呼组件的:

<app-button-loader [disabled]="!demandCreationForm.valid" (onClick)="onSubmit()" [label]="'demand-create.button-submit' | translate"></app-button-loader>

像这样更改代码

<app-button-loader [disabled]="demandCreationForm.invalid" (onClick)="onSubmit()" [label]="'demand-create.button-submit' | translate"></app-button-loader>

像这样更改代码

<app-button-loader [disabled]="demandCreationForm.invalid" (onClick)="onSubmit()" [label]="'demand-create.button-submit' | translate"></app-button-loader>

将按钮元素更改为以下内容:

<button type="button" class="btn btn-primary" [disabled]="disabled" (click)="onClickButton()">{{ label }}</button>
{{label}

目前,您直接使用html属性“disabled”,而不是Angular属性。因此,一旦加载页面,该值将不会更新。

将按钮元素更改为以下内容:

<button type="button" class="btn btn-primary" [disabled]="disabled" (click)="onClickButton()">{{ label }}</button>
{{label}

目前,您直接使用html属性“disabled”,而不是Angular属性。因此,该值在页面加载后不会更新。

该组件的目标是被其他页面重用,我无法将其硬链接到实际表单(我在帖子中添加了精度)。该组件的目标是被其他页面重用,我无法将其硬链接到实际表单(我在帖子中添加了精度)。事实上,非常感谢你!我太专注了,我完全忘记了那些!的确,非常感谢!我太专注了,我完全忘记了那些!