首页 > 解决方案 > [attr.name] 和 [name] 有什么区别

问题描述

我有一个关于[attr.name]and的问题[name],我querySelectorAll在我的 ts 中使用下一种形式 =>

this._document.querySelectorAll("input[name="+'checkModel-'"]")

如果我像这样在 html 中定义->

<input [name]="checkModel-" type="checkbox">

我得到了 nodeList 为空,而我这样做

<input [attr.name]="checkModel-" type="checkbox">

节点列表返回预期的值/值,它们之间有什么区别吗?

标签: htmlangulartypescript

解决方案


输入 HTML 元素有一个名为“name”的属性。它用于设置给定控件的名称。由于某些原因,您的属性绑定可能由于未关闭的标记或 HTML 语法错误而无法正常工作。

属性绑定

<input [value]="yourVariableName" />

将任何给定控件或 HTML 元素中的属性值绑定到变量或方法。要使其正常工作,您必须使用现有的 HTML 属性,例如“name”、“max”、“min”、“type”。如果不这样做,将出现以下错误:

Template parse errors: Can't bind to 'data-username' since it isn't a known native property

属性绑定

<input [attr.name]="yourVariableName" />

与另一个没有太大不同的是,属性绑定创建了一个新的标志或属性,该标志或属性附加到元素以供将来使用。它主要用于当您想向具有以前没有的属性的元素添加一些额外的数据时。常用于从属性绑定解决之前的错误。


推荐阅读