ViewDestroyedError。试图使用一个被破坏的视图:Angular 4中的detectChanges
我是Angular 4的新手,并试图构建一个简单的路由,但是当我尝试使用this.router.navigate(['./admin/login']);重定向寄存器重定向时,因此在console.log中抛出此错误ViewDestroyedError: Attempt to use a destroyed view: detectChanges.这是我的register.component.ts文件的样子: import { Component, OnDestroy } from '@angular/core'; import { Router } from "@angular/router"; import { ChangeDetectionStrategy } from '@angular/core'; import { FormValidationService } from "../../validations/form-validation.service"; impo
4 2024-02-25
编程技术问答社区
在Angular Reactive表单中注册Contorl的问题
我正在研究角反应性形式.最初,我在FormGroup中有一个formarray.之后,我将FormGroup推入FormArray,以动态添加形式控制.使用FormControlname绑定这些控件时,我会遇到问题. 我遇到此错误:无法找到路径的控制:'controlarray-> 0-> value' 这是我的组件类代码: ngOnInit(){ this.reviewForm = this.fb.group({ 'controlArray': new FormArray([]) }); this.showDefaultForm(); } 首先,我在FormdB中获取数据,然后我正在搜索它以获取最后一组默认表格. showDefaultForm(){ for(let form of thi
0 2024-02-25
编程技术问答社区
Angular 2 FormControl.reset()不起作用,但.resetForm()却起作用(但typecript错误)。
在我的Angular 2形式中,我有以下打字稿: export class UserEditComponent implements OnChanges { @Input() userModel: IUserModel; @Output() onSave: EventEmitter = new EventEmitter(); @ViewChild("userEditForm") userEditForm: FormControl; private userNameIsValid = true; constructor(private httpService: HttpService) { } ngOnChanges (changes: SimpleChanges) { this.userEditForm.resetForm(); conso
0 2024-02-25
编程技术问答社区
动态创建formGroupName不起作用 - 角反应性形式
我正在尝试使用此数据传统创建ReactiveForm Angular: -company -name -city -employee1 -name -planet -employee2 -name -planet 我创建了一个组件CompanyDetailsComponent和另一个EmployeeDetailsComponent 我想用EmployeeDetailsComponent用formGroupName s employee1 & employeee2 这是代码实际上,我想让它适用于我必须保持结构平坦的可变数量的员工(我不能使用一系列员工,在这种情况下,我会使用FormArray,例如 this ) 为了实现这种平坦的继承结构,我试图首先为2名员工做. 任何帮助将不胜感激 预先感谢您! 解决方案 我认为您从尤尔祖(Yurzui)的建议中进行了编辑,但是我看了一下并修复了一个小错误,该错误阻止了它的工作,这是
6 2024-02-25
编程技术问答社区
Angular2:电子邮件已经作为自定义验证器存在?
我创建了一个使用Angular2的表单,然后创建了以下方法来检查电子邮件地址是否已经存在.这是我的代码: checkEmail(): void { // FIRST PART this.found = false; // If user is not Premium... if (!this.currentUser.isPremium) { // ...and if user typed something in the input field, then apply validitor for email address if (this.myForm.controls.email.value.length > 0) { this.myForm.controls.email.setValidators([validateEmail()]); this.myForm.c
0 2024-02-25
编程技术问答社区
无法在FormArray中的FormGroup内部设置动态验证器-Angular
我有一个角度反应形式的查询. 我的formGroup下方,在该formGroup内部,我有一个formarray,在该formarray中,我有另一个formgroup. 这是主要的formgroup public formGroup = this.formBuilder.group({ email: ["", Validators.required], address: this.formBuilder.array([ this.initFun() ]) }); 这是formarray initfun()函数 fun() { return this.formBuilder.group({ city: [""], state: [""] }); } 现在查询是我想动态设置验证器和状态. 在formGroup内部添加动态验证器的方法是什么? 我可以使用以下语法设置验
6 2024-02-25
编程技术问答社区
父级中的.getRawValue()排除FormGroup中禁用的控件(表单自定义表单控件的一部分)
具有实现ControlValueAccessor的组件,并带有内部FormGroup维护自定义表单控制状态.当任何字段是禁用该FormGroup的一部分时,在父级以调用.getRawValue()方法时,该字段不可见. 按规范,.getRawValue()应返回原始对象,包括禁用字段. 我已经检查了.getRawValue()的代码,这是我发现的: getRawValue(): any { return this._reduceChildren( {}, (acc: {[k: string]: AbstractControl}, control: AbstractControl, name: string) => { acc[name] = control instanceof FormControl ? control.value : (control).getRawValue(); retu
0 2024-02-25
编程技术问答社区
设置初始值 角度2 反应式窗体阵列
我试图为Angular 2反应形式形式对象设置初始值. 即使用于设置表单值的JSON对象包含带有多个条目的数组值,但仅显示第一个条目,并且" form.Value"也仅显示第一个条目. 我正在使用语法(this.myForm).patchValue(value, { onlySelf: true });在表单上设置初始值. 这是一个证明问题的plunker: ?p =预览 我使用了有什么想法我做错了什么? 解决方案 您将addresses设置为表单数组,在initAddress()方法中,您只返回一个元素. 如果将第二个调用添加到addresses数组,则获得第二个地址. this.myForm = this._fb.group({ name: ['', [Validators.required, Validators.minLength(5)]], addresses: this._fb.array([ thi
Angular 2 Reactive Forms: 无法找到带有路径的控件
我想知道,当我在另一个FormBuilder组内有一个数组时,我需要做些什么才能使用" setControl"和" get".例如: this.formulario = this.formBuilder.group({ title: [this.racPessoa.title, [Validators.required]], description: [this.racPessoa.description, [Validators.required]], person: this.formBuilder.group({ idPerson:[this.racPessoa.person.idPerson], name:[this.racPessoa.person.nome], personDocument: this.formBuilder.array([]) }), }); 在上面的情况下,如果我想处理"标题,我可以写: this.f
0 2024-02-25
编程技术问答社区
<textarea>添加formControlName<textarea>元素时,默认内容消失
我正在尝试在Angular 4.0.2中创建一个反应性形式,该形式具有从数据库中拉出的带有默认内容的字段. 中的内容显示没有任何问题,但是当我将formControlName="sectionContent"添加到元素中时,其内容会消失. > 这个问题仅在元素中发生,因为我有其他字段,但这些内容仍在出现. formGroup看起来像这样: this.sectionForm = new FormGroup({ sectionTitle: new FormControl(), sectionContent : new FormControl() }); 有人遇到了这个问题吗? 解决方案 使用默认值 this.sectionForm = new FormGroup({ sectionTitle: new FormControl(), secti
2 2024-02-25
编程技术问答社区
如何使用嵌套的表单组验证反应式表单?
我正在努力创建一个嵌套的表格组,如 https://plnkr.co/edit/c93yfe2r83cvjirvl6uj?p =预览. 这是当形式没有任何巢组时,Angular中的示例使用validationMessages显示.当我嵌套表单组时,我不确定该如何扩展.以下是我将创建的示例表单和验证消息. buildForm(): void { this.heroForm = this.fb.group({ 'name': [this.hero.name, [ Validators.required, Validators.minLength(4), Validators.maxLength(24), forbiddenNameValidator(/bob/i) ] ], 'address': this.fb.group({
0 2024-02-25
编程技术问答社区
角形2罐';t设置表单数组值
我得到此错误: 尚未在此数组中注册的表单控件.如果您使用的是ngmodel,则可能需要检查下一个tick(例如,使用SetteMeTout). 使用此代码时: public settingsForm: FormGroup = this.fb.group({ collaborators: this.fb.array([]), rsvp: this.fb.group({ latestDate: ['', [Validators.required]], latestTime: ['', [Validators.required]], guestLimit: ['', [Validators.required]], isRSVPOpen: false, isGuestPlusOne: false, isAutoApproveToGuestlist: false, isOnlyFacebookRSVP: false,
角2反应形式的FormArray内的FormGroup
我没有得到一个角度2反应形式的工作,该形式的工作是嵌套在 formarray 中的 formgroup .有人可以告诉我我的设置有什么问题. 无关的部分已省略了简洁的部分. 以下是我的组件 orderForm: FormGroup = this.fb.group({ id: [''], store: ['', Validators.required], //The part related to the error order_lines: this.fb.array([ this.fb.group({ id: [''], order_id: [], product_id: [], description: ['', Validators.required], unit_price: ['', Validator
0 2024-02-25
编程技术问答社区
Angular2如何将表单上的"touch”属性设置为true
我的组件中有一个反应性形式,我想在等于true的每个输入中设置touched属性.我当前的代码执行此操作,但它会引发错误Cannot set property touched of # which has only a getter: addressForm: FormGroup; ... this.addressForm = this._fb.group({ street: ["", [Validators.required]], city: ["", [Validators.required]], state: ["", [Validators.required]], zipCode: ["", [Validators.required]], country: ["", [Validators.required]] }); ... for (var
0 2024-02-25
编程技术问答社区
角反应型粘结不起作用
我正在尝试在此处创建嵌套的反应性表格: https://stackblitz.com/edit/Angular-mgrfbj 这是项目的继承人: ---create company form (hello.component.ts) --- company details form (company-details.component.ts) --- [ employee details form (employee-details.component.ts) employee details form employee details form ... ] 对于此类嵌套表格,我必须使用ViewProviders和FormGroupDirective,如第一个嵌套表格( company-details.component.ts )正在按预期工作 但是,在FormArray内添加*ngFo
2 2024-02-25
编程技术问答社区
初始化形式阵列现有阵列为角度反应形式
我有一个从服务器获取的动态部门列表.我想将该数组推到初始化时形成数组,基本上我想根据部门名称或数组中的ID显示复选框.我知道如何以反应性形式推动一个空数组.但是如何使用现有数组初始化. departmentList:any=[]; //array contains all departments SelectedDeptList:any=[]; //fetched from db , selected departments userForm: FormGroup; this.userForm = this.fb.group({ //fb form builder 'phone': [null], 'departmentList': this.fb.array([this.createDepartment()]), }) createDepartment(): FormGroup { return this.fb.group({
0 2024-02-25
编程技术问答社区
需要选中复选框
我希望禁用一个按钮,直到使用Angular的FormBuilder检查了复选框.我不想明确检查复选框的值,并且宁愿使用验证器,以便我可以简单地检查form.valid. 在复选框下方的两个验证案例中 interface ValidationResult { [key:string]:boolean; } export class CheckboxValidator { static checked(control:Control) { return { "checked": control.value }; } } @Component({ selector: 'my-form', directives: [FORM_DIRECTIVES], template: `
0 2024-02-25
编程技术问答社区