Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
Angular,ngClass,使用函数评估元素类-性能和最佳实践方法_Angular_Forms_Angular Reactive Forms_Angular Components_Ng Class - Fatal编程技术网

Angular,ngClass,使用函数评估元素类-性能和最佳实践方法

Angular,ngClass,使用函数评估元素类-性能和最佳实践方法,angular,forms,angular-reactive-forms,angular-components,ng-class,Angular,Forms,Angular Reactive Forms,Angular Components,Ng Class,我在按钮元素上使用ngClass获取函数,代码是关于: 启动formGroup和函数 gentrateForm() { this._formGroup = this.formBuilder.group({ remarks: '', }); } getButtonClasses() { const inpulValue = this._formgroup.get('remarks'); if (inpulValue.value) {

我在按钮元素上使用ngClass获取函数,代码是关于:

启动formGroup和函数

gentrateForm() {
    this._formGroup = this.formBuilder.group({
        remarks: '',
    });
}
    getButtonClasses() {
    const inpulValue = this._formgroup.get('remarks');
    if (inpulValue.value) {
        return `some css classes`;
    } else {
        return `other classes + disabled class`;
    }
}
}

最后是组件html

<button
 [ngClass]="getButtonClasses()">
Delete
</button>

删除
我的问题是:

  • 从性能的角度来看,在模板本身使用ngClass逻辑更好还是更好 最好把它搬到教室里去
  • 我是否应该以其他方式实施它?其他途径

    • 在我看来,最好将模板和代码分开。 你的情况:

      <input formControlName="remarks" #remarks/>....
      
      <button
       [ngClass]="{'class1 class2 class3': remarks.value}">
        Delete
      </button>
      
      。。。。
      删除
      
      如果类只有一个,则更容易:

      <button
       [class.class1]="remarks.value">
        Delete
      </button>
      
      
      删除
      
      因为有几个类无法使用[class.class..]