angular - 子组件以父形式 angular 4/5 返回 null
问题描述
我有这个可重用的组件,它只会让用户选择一些记录。
当子组件中的记录正确显示时,选择/输入的数据总是返回 null。
这是两者的精简结构(出于空间目的删除了一些元素)
import { Component, OnInit } from '@angular/core';
import {GlobalData} from '../../../globals/global-data';
import { ControlContainer, FormGroupName } from '@angular/forms';
@Component({
selector: 'app-hr',
templateUrl: './hr.component.html',
styleUrls: ['./hr.component.scss'],
viewProviders: [
{ provide: ControlContainer, useExisting: FormGroupName }
]
})
export class HrComponent implements OnInit {
constructor() {}
}
的HTML:
<select formControlName="rec">
<option value="1">Lower</option>
<option value="2">Higher</option>
</select>
父组件.ts
this.rForm = fb.group({
'hr': fb.group ({
'rec' : [null, []],
}),
'reason':[null,[Validators.required]]
});
processForm(post){
console.log(post.hr); //===================>returns null for all child elements tho selected
}
父.html
<form [formGroup]="rForm" (ngSubmit)="processForm(rForm.value)">
<div formGroupName="hr">
<app-hr></app-hr>
</div>
<input type="text" formControlName="reason"/>
</form>
解决方案
不确定我是否理解正确,但我认为您应该在子组件中使用 Output() ,并发出选定的值:this.example.emit(value);
,然后在父组件中收听?
推荐阅读
- windows - 显示文件所有属性的 Windows 命令
- sql - 为什么带有 LIMIT 的横向连接会增加执行时间?
- c# - 什么是 ApiController 属性适合精确(尤其是在开发之外)?
- javascript - Facebook 的 JS SDK 停止在控制台中处理此错误
- sql - 为什么 PostgreSQL 不使用无符号整数作为 ID?那不会提供两倍的可能记录吗?
- ruby-on-rails - 如何在 ActiveAdmin 的仪表板中使用参数?
- neo4j - 设置关系属性时奇怪的 Neo4J Cypher 行为
- visual-studio-code - 上下移动时停止线移动(Visual Studio Code)
- delphi - 快速更新数组更少的行
- sml - 如何在两个整数范围内进行嵌套 for 循环?