作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一旦像这样加载组件,我就会尝试将值修补到初始化的 FormGroup 中(其中 editForm 是 FormGroup,editInfo 是包含我想要修补到表单中的信息的 JSON):
Object.keys(this.editForm.controls).forEach(key => {
if ((key.includes("date") || key.includes("Date")) && this.editInfo[key] != undefined) {
this.editForm.patchValue({
key: {
date: {
year: this.editInfo[key].getFullYear(),
month: this.editInfo[key].getMonth() + 1,
day: this.editInfo[key].getDate()
}
}
});
}
});
出于某种原因,这不会修补任何值。 if 语句按预期运行,并且所有 .getFullYear()、.getMonth() 和 .getDate() 值(所有这些键值都是 Date 对象)均已定义且正确。当我更换时
this.editForm.patchValue({
key: {
date: {
与
this.editForm.patchValue({
'specificKey': {
date: {
该 key 已正确修补。是否有任何原因导致不指定 key 会导致此功能不起作用? This是我用于日期选择器的模块(我试图在上面修补的值),如果有任何用处的话。
最佳答案
通过 Ankit Saroch 提供的链接 (Is there a way to use variable keys in a JavaScript object literal?) 找到了我的答案。解决方案是在修补值时将 [] 放在键周围,如下所示:
this.editForm.patchValue({
[key]: {
date: {
使用方括号,键将被解释为 computed property names .
关于javascript - 遍历 FormGroup 控件时的 Angular2 patchValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44949833/
我是一名优秀的程序员,十分优秀!