JGF*_*FMK 26 html-input readonly attr angular
我试图回答别人的问题.在这样做的过程中,我意识到在一些事情上存在着相当多的不确定性.我希望有人可以提供关于编号点的反馈1..4:
HTML的相关部分:
<input type="text" placeholder="Club Name" #clubName>
Run Code Online (Sandbox Code Playgroud)
将其添加到Typescript组件.
// class properties
@ViewChild('clubName')
inp:HTMLInputElement; // Could also use interface Element
// conditionally set in some other methods of class
inp.setAttribute('readonly', 'readonly');
inp.removeAttribute('readonly');
Run Code Online (Sandbox Code Playgroud)
不得不说这对我来说是个灰色地带.
HTMLInputElement或Element直接使用@ViewChildAngular 2+是一种不好的做法吗?只是,我一直在使用经常看到的例子ElementRef或链接关闭以nativeElement从ElementRef.由于VS Studio没有那些智能感,我突然觉得我在黑暗中编码.即,你永远不会得到关于方法setAttribute或removeAttribute的反馈,他们的参数要求等(我知道As也投了)
<input [attr.readonly]= "isReadOnly">
Run Code Online (Sandbox Code Playgroud)
IIRC我认为你必须用一个属性get in Typescript这样做:
get isReadOnly() :boolean {
}
Run Code Online (Sandbox Code Playgroud)
这种方式有效吗?
<input [attr.readonly]= "isReadOnly()">
Run Code Online (Sandbox Code Playgroud)
打字稿
isReadOnly() :boolean {
}
Run Code Online (Sandbox Code Playgroud)
这种方式有效吗?
更新:还有*ngIF,因此您输出两个具有相同名称的输入元素之一.但这对我来说听起来就像一把大锤要破解坚果.
phn*_*phn 58
您需要使用以下(Angular 4):
<input [readonly]="isReadOnly">
Run Code Online (Sandbox Code Playgroud)
如果使用,att.readonly则输入将始终为只读,因为readonly即使其值为false,该属性也将存在.通过使用[readonly]Angular,只会将属性if置isReadOnly为true.
在HTML中,以下内容足以使输入为只读:
<input readonly>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40595 次 |
| 最近记录: |