gpt4 book ai didi

primeng - 如何使用 react 形式包装像自动完成这样的 primeng 组件?

转载 作者:行者123 更新时间:2023-12-05 07:42:38 31 4
gpt4 key购买 nike

我想在我自己的组件中包装一个 primeng 自动完成组件,但不知道如何提供 formControlName:

错误:未捕获( promise ):错误:formControlName 必须与父 formGroup 指令一起使用。

包装器组件 html:

<p-autoComplete
[formControlName]="formControlName"
[suggestions]="suggestions"
[multiple]="multiple"
[dropdown]="dropdown"
(completeMethod)="search($event)">
</p-autoComplete>

包装组件 ts:

@Component({
selector: 'logi-autocomplete',
templateUrl: 'autocomplete.component.html',
providers: [AUTOCOMPLETE_VALUE_ACCESSOR]
})
export class AutocompleteComponent implements OnInit, ControlValueAccessor {

@Input() formControlName: string;

@Input() multiple = true;
@Input() dropdown = true;

// Skipped non related code

_value: any = '';
get value(): any { return this._value; };
set value(v: any) {
if (v !== this._value) {
this._value = v;
this.onChange(v);
}
}

writeValue(value: any) {
this._value = value;
this.onChange(value);
}

onChange = (_) => {};
onTouched = () => {};
registerOnChange(fn: (_: any) => void): void { this.onChange = fn; }
registerOnTouched(fn: () => void): void { this.onTouched = fn; }
}

在自定义组件中使用组件:

<form [formGroup]="form">
<logi-autocomplete
[formControlName]="'groups'"
></logi-autocomplete>
</form>

最佳答案

您必须在要嵌入自动完成的 HTML 中编写代码。

`

<span class="ui-fluid">
<p-autoComplete formControlName="autoComplete"field="label"completeMethod)="search($event)">
</p-autoComplete>
</span>
<ul>
<li *ngFor="let s of autoComplete">{{s.label}}
</li>
</ul>

`

并在您的组件中编写代码,您将在其中将数据传递给自动完成小部件。

autoComplete       = new FormControl(null, []);search(event){this.receiptDiarizationFacade.getSubjects(event.query).subscribe(value=>this.autoComplete=value);
}

在此代码快照中,我使用了 observable 而不是 promise,但您可以使用 promise

关于primeng - 如何使用 react 形式包装像自动完成这样的 primeng 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44325363/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com