typescript - Angular 9没有设置动态输入字段值
问题描述
升级到 Angular 9 版本后出现了一个奇怪的问题。我正在调用一个函数,该函数返回一个值来为输入表单字段设置默认值。该函数正在返回一个值,但在输入框中它没有显示该值,而是显示为[object object] 令人惊讶的是,如果我在 [placeholder] 中调用相同的函数,它会显示正确的返回值。我不知道,为什么它可以与 [placeholder] 一起正常工作,但在 [value] 中却不行。在 angular 8 中同样可以正常工作。
.html 文件
<mat-form-field>
<input matInput formControlName="{{'item'+k}}" [placeholder]="getValue(k)" [value]="getValue(k)" />
</mat-form-field>
ts文件
getValue(k:any) {
let item;
// ... some logic to get a desired value
return item;
}
解决方案
使用输入装饰器来初始化您的输入值。
在 ts 文件中,设置属性值,即:this.property = item 并使用 @input 装饰器进行初始化,然后在 html 中,使用 ngModel 指令将组件值绑定到属性。
请记住,您不能在同一元素中使用带有 value 属性的 ngModel。
推荐阅读
- javascript - 如何使 og: 元标记在 NextJS 中正常工作?
- c# - WPF c#相对源祖先数据绑定
- php - Amazon AWS:为图像设置签名有效负载是一种好习惯吗?
- c - gcc:创建静态链接到其所有依赖项的共享库
- html - 我无法将我的标签内嵌显示。这是怎么做的?
- javascript - 使用变量值作为另一个变量节点 js 的名称
- swift - 禁用滚动跳转到所选项目 - 第一次扩展节点 NSTreeView
- awk - 仅当当前行满足给定条件时才保留当前行和上一行
- javascript - 使用 AJAX 选择下拉菜单选择器时遇到问题
- swiftui - SwiftUI 领域内存问题。RAM使用量不断增加