如何在angular6的ng-select中设置默认值?

Fah*_*ari 11 multi-select typescript angular-ngselect angular angular6

我正在使用 angular6 multi-select,它有一个项目列表,这些项目来自 angular 服务的对象数组,ngOnInit就像这样传入multi-select

this.sensorTypes = [
  { label : "Power", value : "P"},
  { label : "Current", value : "C"},
  { label : "Voltage", value : "V"}
]
Run Code Online (Sandbox Code Playgroud)

我想在multi-select表单加载时默认设置 2 个值。对于这个我结合ngModelmulti-select,并在该变量我在设定值ngOnInit这样的

this.selectedAttributes = [
  {label : "Current", value : "C"},
  {label : "Voltage", value : "V"}
]
Run Code Online (Sandbox Code Playgroud)

在我的 component.html 中,我是这样创建的multi-select

<div class="form-group row">
  <div class="col-sm-10">
    <ng-select 
       [ngClass]="'ng-select'" 
       [(ngModel)]="selectedAttributes" 
       [ngModelOptions]="{standalone: true}" 
       [options]="sensorTypes"
       [multiple]="true">
    </ng-select>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

但默认情况下,多选中并未设置值。

wen*_*jun 6

您应该使用[items]输入绑定而不是[options]

<ng-select 
  [items]="sensorTypes"
  bindLabel="label"                 
  [multiple]="true"
  placeholder="Select"
  [(ngModel)]="selectedAttributes">
</ng-select>
Run Code Online (Sandbox Code Playgroud)

在组件的 module.ts 上,导入NgSelectModule. 如果你还没有导入你的FormsModule,你应该这样做,因为它需要被导入以进行 2 路绑定ngModel才能工作。

import { NgSelectModule } from '@ng-select/ng-select';
import { FormsModule } from '@angular/forms';
.
.
@NgModule({
  imports: [
    FormsModule,
    NgSelectModule,
. 
.
.
Run Code Online (Sandbox Code Playgroud)