【问题标题】:Implementing validations in Angular 2 multi-select drop-down在 Angular 2 多选下拉菜单中实现验证
【发布时间】:2020-08-31 19:30:14
【问题描述】:

我想知道可以在 cuppa 实验室的 Angular 2 多选下拉菜单中实现引导验证。我浏览了文档,但找不到任何文档。 基本上,如果用户没有选择任何值,例如我可以使用[ngClass]="{'is-invalid': someThing.invalid}" 的普通输入,我想以红色突出显示下拉列表。这是我的 HTML 和我尝试过的内容:

<angular2-multiselect name="countries"
  [(ngModel)]="myModel.countries" #countries2="ngModel"
  presentInCountries [data]="countries"
  [settings]="presentInCountriesdropdownSettings"
  (ngModelChange)="multiselectChangeCountries($event)">
</angular2-multiselect>

如果所选国家/地区为 0,我尝试将布尔值设置为 true,然后应用:

this.presentInCountriesdropdownSettings.classes += ' is-invalid';

但这不起作用。有什么方法可以实现吗?

【问题讨论】:

    标签: angular multi-select


    【解决方案1】:

    尝试像这样使用ReactiveFormRequired 验证器:

    Component.ts

    import { Component } from '@angular/core';
    import { FormBuilder, Validators } from "@angular/forms";
    
    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
    
      constructor(private fb: FormBuilder) { }
    
      /*########### Form ###########*/
      registrationForm = this.fb.group({
        countryName: ['', [Validators.required]]
      })
    
    

    Component.html

    <form [formGroup]="registrationForm" (ngSubmit)="onSubmit()">
      <angular2-multiselect name="countries"
         formControlName="countryName"
         presentInCountries [data]="countries"
         [settings]="presentInCountriesdropdownSettings"
         (ngModelChange)="multiselectChangeCountries($event)">
      </angular2-multiselect>
    </form>
    

    【讨论】:

    • 但是如果验证失败,如何应用红色边框?
    • 使用角度材质选择,红色边框是默认的
    • 抱歉不能使用angular材质,必须坚持angular2-multiselect
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 2012-12-03
    • 2019-01-05
    • 2018-05-26
    • 2017-10-08
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多