gpt4 book ai didi

angular - 在 Angular 6 中使用带有标签的 FormcontrolName

转载 作者:行者123 更新时间:2023-12-03 15:24:49 25 4
gpt4 key购买 nike

我有反应形式的 Angular 6 项目。我有一个像下面这样的网格。 Detail按钮,打开一个模式窗口并显示学生信息。我的对话框 html 如下所示。但它给了我No value accessor for form control with name: studentNumber错误。我的html逻辑错了吗?

这不起作用

<form [formGroup]="studentForm">
<p-dialog header="Student Detail" [(visible)]="displayStudentForm">
<div class="p-grid">
<label>Student Number</label>
<label formControlName="studentNumber"></label>
</div>
<div class="p-grid">
<label>Student Age</label>
<label formControlName="studentAge"></label>
</div>
<div class="p-grid">
<label>Student Type</label>
<label formControlName="studentType"></label>
</div>
</p-dialog>
</form>

当我像下面这样尝试时,工作完美。但是,这对于到处写都是很长的。
<label>{{studentForm.controls.studentNumber.value}}</label>

当我像下面这样尝试时,完美地工作
<input formControlName="studentNumber"> 

My grid

最佳答案

为了不重复自己,我会为这种情况创建简单的指令:

import { Directive, HostBinding, Optional, Input } from '@angular/core';
import { ControlContainer} from '@angular/forms';

@Directive({
selector: 'label[controlName]',
})
export class LabelControl {
@Input() controlName: string;

constructor(@Optional() private parent: ControlContainer) {}

@HostBinding('textContent')
get controlValue() {
return this.parent ? this.parent.control.get(this.controlName).value : '';
}
}

并按如下方式使用它:
<label controlName="studentNumber"></label>

Ng-run Example

关于angular - 在 Angular 6 中使用带有标签的 FormcontrolName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248582/

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