这是一个简单的角度HTML问题,我想对标签的id稍微清楚一点。例如,在我的代码中:
<input class="inputfile" type="file" name="file" #file id="file"
(change)="onFileChange($event)"/>
<button mat-mini-fab color="primary" (click)="file.click()">
<mat-icon aria-label="Icon to upload file">cloud_upload</mat-icon>
</button>
<label for="file" >Upload your portifolio</label>
在该示例中,我必须在输入中设置#file
id="file"
以使按钮正常工作,还必须为标签设置以便工作。以前我以为他们有相同的函数,只是语法而已。有人能澄清每一种方法的用途吗?
发布于 2019-02-11 07:58:19
如果您想使用javascript函数或从使用getElementByID的控制器中标识一个元素,或者要指向样式表中的样式,则需要在整个DOM中设置必须是该元素唯一的id
。
但是,当您想要访问DOM文件中的元素时,需要使用#
引用该元素。如果只使用id
,浏览器中就会出现错误Cannot read property 'XXX' of undefined
。
例如,为了使用DOM文件中输入的值来显示/隐藏按钮,而无需编写任何javascript/角代码,您可以执行如下操作,其中设置id
是行不通的。
<form class="example-form">
<mat-form-field class="example-full-width">
<input #nameField matInput placeholder="Name">
</mat-form-field>
<button type="button" *ngIf="nameField.value!==''" >Submit</button>
</form>
发布于 2019-02-11 08:22:09
在角度应用程序中,#mydiv
可以根据上下文的不同而具有不同的功能。
<div #mydiv>
是对元素的引用exportas:"ngform"
的一个元素上,#mydiv="ngForm"
创建一个组件引用,该元素是一个角分量,或者有一个角指令。发布于 2019-02-11 07:42:44
用于为元素分配唯一标记的html中的id (稍后可由javascript使用)。#在html中用作此元素的标记(如指向该元素的链接)。示例:您已经按下按钮和浏览器滚动到标记为#file的元素。
https://stackoverflow.com/questions/54633959
复制相似问题