angular - 复杂对象的角度自定义输入
问题描述
我有一个包含 3 个字符串成员的对象,我想为它创建一个可重用的输入,因为它在整个应用程序中被多次使用,所以我试图创建一个包含所有 3 个成员输入的自定义输入。但我没有找到方法,因为我发现的其他解决方案不允许我将复杂对象 (MyObject) 槽ngModel
传递给我的自定义输入组件。为了增加我的问题的复杂性,我还需要验证我的自定义输入:如果我的自定义输入是required
所有 3 个子输入是required
. 如果子输入之一被填充,其他 2 个是required
,如果子输入之一无效,我的自定义输入也无效。
这是我希望我的代码如何工作的示例(如果可能)
我的对象.ts
export class MyObject {
name: string;
category: string;
areaName: string;
}
MyFormComponent.ts
@Component({
selector: 'app-my-form'
template: `
<form #myForm="ngForm">
<my-object-input [(ngModel)]="myObj" ></my-object-input>
</form>`
})
export class MyFormComponent {
myObj: MyObject;
}
谢谢
解决方案
我没有看到通过创建自定义表单控件来解决您的任务的任何问题。遵循这篇解释清楚的文章custom-form-controls-in-angular-2。在本文中,您还可以找到添加自定义验证规则的方法。
一般的想法是在您的自定义表单控件中实现接口,并在自定义方法中ControlValueAccessor
添加您的逻辑。writeValue(value: any)
推荐阅读
- python-2.7 - Elasticsearch DSL:过滤,然后在 python 中聚合
- microsoft-graph-api - 同步邮箱状态、增量与订阅的最佳实践
- modelica - 如何在块中使用未指定的数组维度?
- javascript - 使用参数行数据将数据表中的行数据传递给控制器中的方法
- c++ - 是否仅在主线程上接收回调?
- python - 将会话 ID 添加到我的散景应用程序确实会返回一个空白页
- javascript - PUT multipart-formdata 包含 PNG 和 XMLHttpRequest 在 vanilla javascript
- javascript - 在没有 jquery 的情况下滚动时更改导航栏内容(Header Sticky on Scroll)?
- javascript - 增加音量滑块感知线性的数学函数
- angular - 如何在 ionic 4 ion-list 中制作一些项目分隔符