angular - 角度 ControlValueAccessor 检查是否使用 ngModel 绑定
问题描述
我有一个实现 ControlValueAccessor 的自定义输入元素。但是,我的控件也应该可以仅使用 [value]='valuetoshow' 而不使用 ngModel 来使用。例如,它应该可以以下任何一种方式使用
<mycontrl [(ngModel)="customValue"] />
或者
<mycontrl [value]="customValue" />
我找到了第一个选项,并且使用 ControlValueAccessor 可以正常工作,但是我该如何处理第二种情况。基本上从控件我如何检查它是否绑定使用ngModel
另外,这个控件在内部使用一个文本框。
<input type="text" />.
现在我需要检查我的自定义控件是否绑定使用ngModel
,如果是,则使用绑定内部文本框ngModel
,如果不设置值。做这个的最好方式是什么 ?
解决方案
在构造函数中你可以尝试获取 NgControl,如果不存在,它是一个独立的输入
constructor(@Optional() control:NgControl){
if (!control)
console.log("I have no [(ngModel)] or [formControl]")
}
推荐阅读
- c# - 避免角色因胶囊对撞机而跳跃
- c# - 无法通过 c# 代码使用 httpwebrequest 下载 zip 文件。它通过浏览器下载
- python - numpy数组使用的内存大于RAM?
- spring-webflux - 如何使用 RSocket 处理从服务器发送到客户端的消息?
- spring-boot - Websocket 不适用于 GAE(Google App Engine)
- c++ - for循环中递归类的奇怪行为
- php - PHP ImageMagick - 使用字体文件而不是系统字体绘制印度文本
- jenkins-pipeline - 创建 GitLab 合并请求时需要更多时间来启动 CI 作业
- android - 使用 react-native-ble-plx 发送大文件
- python - Python 子进程 - 运行 shell 命令并对特定命令输出执行某些操作