sm-select不适用于formArray

时间:2017-03-22 06:59:34

标签: angular

我在angular 2 app中使用了ng-semantic select插件。

ng-semantic

我有以下html脚本

<form [formGroup]="testForm" novalidate (ngSubmit)="save(testForm.value)">
<div fomArrayName="testAttributes">
<div [formGroupName]="0">
<sm-select
    [options]="{direction: 'downward'}" 
    placeholder="Attributes" 
    [formControl]="attributeMaster"
    (onChange)="updateModel($event);"
    class="fluid">
    <option *ngFor="let item of selectAttributes" [value]="item.label">
        <span [innerHTML]="item.value.displayName"></span>
</sm-select>
</div>
</div>
</form>

在我的组件中

public buildForm(): void {
    this.testForm = this._fb.group({
        testAttributes: this._fb.array([])
    });
    this.loadFormArray();
}

public loadFormArray(): void {
    this.attributesFromServer.forEach(attribute => {
        (<FormArray>this.testForm.controls["testAttributes"]).push(this.createArrayData(attribute))
    })
}

public createArrayData(attribute: Attribute) {
    return this._fb.group({
        attributeMaster: [attribute.attributeMaster, <any>Validators.required]
    })
}

当我运行应用程序时,我收到以下错误,

  

找不到具有未指定名称属性的控件

当我将html脚本更改为

<sm-select
    [options]="{direction: 'downward'}" 
    placeholder="Attributes" 
        formControlName="attributeMaster"
    (onChange)="updateModel($event);"
    class="fluid">
    <option *ngFor="let item of selectAttributes" [value]="item.label">
        <span [innerHTML]="item.value.displayName"></span>
</sm-select>

我收到以下错误,

  

没有带路径的表单控件的值访问器:'testAttributes - &gt; 0 - &gt;   attributeMaster

错误指向我们为上面的sm-select设置formControl属性的行。请帮忙。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。我的错,我之前在演示页面中没有注意到sm-select的[control]属性。

sm-select demo

我的道歉。我将[formControl]更改为[control],现在正在使用。