我向li
元素添加了[disabled]
属性。但是我得到了这个错误:
不能绑定到'disabled‘,因为它不是’li‘的已知属性。
这是我的代码部分:
<li [disabled]="pager.currentPage > 1">
</li>
有谁可以帮我?
发布于 2016-12-20 19:24:00
<li>
元素没有disabled
属性。
您希望应用于<li
的组件或指令实际上并未应用,或者可能应该设置disabled
属性而不是属性
<li [attr.disabled]="pager.currentPage > 1 ? true : null">
null
将在条件为false的情况下删除该属性。布尔型false
将导致
<li disabled="false">
这可能不是你想要的。使用null
,您可以获得
<li>
发布于 2016-12-20 19:35:27
加上枪手的答案。disabled属性仅对具有可以禁用的操作的html标记有意义。
禁用的元素
如果元素属于以下类别之一,则认为该元素实际上处于禁用状态:
禁用的输入按钮元素作为disabled
的disabled
https://www.w3.org/TR/html5/disabled-elements.html
因此,禁用一个li是没有意义的,因为它一开始就没有任何动作。
另一种理解方式是 disabled 属性实际上是一个@Input属性,它是由与表单相关的指令定义的,比如FormControl或FormControlName和...,所以如果你不使用这些指令,你就不能有禁用的属性。
例如,一个输入可以有disabled属性,因为它可以有NgModel,但安莉或div不能有disabled属性,因为它永远不能有NgModel!
因此,为了让残障人士正常工作,angular会检查两件事:
1- disabled是由Angular2定义的指令还是由您定义的指令?(否)。
2-在标记的同一级别上使用的另一个指令定义的@是否被禁用(如NgModel、FormControl和..)?(是的,但您没有使用它们,因为li不能有FormControl!)。
这样Angular2就会抛出一个错误。
当你做attr.disabled时,这不再是一个@Input,它只是一个普通的html属性,就像所有其他的普通属性一样。
因此,如果您只需要将禁用的属性作为普通的html属性来使用它来做一些css工作,那么您应该使用attr.disabled.。
https://stackoverflow.com/questions/41241135
复制相似问题