Angular Can';t绑定到';残疾人士';因为它不是';t'的已知属性;李';
我将Angular Can';t绑定到';残疾人士';因为它不是';t'的已知属性;李';,angular,Angular,我将[disabled]属性添加到li元素。但我得到了这个错误: 无法绑定到“disabled”,因为它不是“li”的已知属性。 这是我的代码部分: <li [disabled]="pager.currentPage > 1"> </li> 有人能帮我吗?元素没有禁用的属性。 您希望应用于以添加冈特答案的组件或指令。 Disabled属性仅适用于具有可禁用操作的html标记 禁用元素 如果元素属于以下类别之一,则称其为实际禁用: 禁用的按钮元素 已禁用的输
[disabled]
属性添加到li
元素。但我得到了这个错误:
无法绑定到“disabled”,因为它不是“li”的已知属性。
这是我的代码部分:
<li [disabled]="pager.currentPage > 1">
</li>
有人能帮我吗?元素没有禁用的
属性。
您希望应用于以添加冈特答案的组件或指令。
Disabled属性仅适用于具有可禁用操作的html标记
禁用元素
如果元素属于以下类别之一,则称其为实际禁用:
- 禁用的按钮元素
- 已禁用的输入元素
- 选择禁用的图元
- text禁用的区域元素
- 具有禁用属性的optgroup元素
- 已禁用的选项元素
- 具有禁用属性的字段集元素
因此,将li设置为禁用状态是没有意义的,因为它没有任何动作可以开始
另一种理解方法是,禁用的属性实际上是一个@Input属性,由表单相关指令定义,如FormControl或FormControlName和,因此,如果不使用这些指令,就不能禁用属性
例如,输入可以具有disabled属性,因为它可以具有NgModel,但li或div不能具有disabled属性,因为它永远不能具有NgModel
因此,要使[禁用]正常工作,angular将检查两件事:
1-禁用的指令是Angular2定义的指令还是您定义的指令?(否)
2.是否已禁用由另一条指令定义的@输入,该指令在标记的同一级别使用(如NgModel、FormControl和..)?(是的,它已定义,但您没有使用它们,因为li无法使用FormControl!)
所以Angular2会抛出一个错误
其中,当您执行[attr.disabled]时,这不再是@Input,它只是一个普通的html属性,与所有其他普通属性一样
所以,如果您只需要将disabled属性作为一个普通的html属性来处理css内容,您应该使用[attr.disabled]谢谢您的回答,它已经工作了。但是,尽管li
元素具有禁用的属性,但它仍然可以被单击。当使用a
元素时会出现这种情况。请参阅下面的答案<代码>
不支持禁用。是的,我在下面看到了答案,非常感谢[attr.disabled]没有为我工作。
<li [attr.disabled]="pager.currentPage > 1 ? true : null">
<li disabled="false">
<li>