javascript - 引用变量被视为未使用和未定义。为什么?
问题描述
我在我的 HTML 代码中使用引用将输入的值传递给 JavaScript 函数。然而,虽然一个引用变量 ( #options
) 工作正常,但另一个 ( #current
) 在一个地方被标记为“未解析/未定义”,并在其声明中标记为“未使用”。我无法弄清楚它们之间有什么区别以及为什么会这样。
我知道这不是重复引用的问题,因为current
如果将其放置在其自己的输入元素中的(单击)事件中,则可以正常工作;但是,这也不是范围问题,因为输入引用options
很好。那么为什么图标函数不能作为current
回报引用呢?
<ng-container matColumnDef="maxInstalls">
<th mat-header-cell *matHeaderCellDef>Max Installs</th>
<td mat-cell *matCellDef="let profile">
<input #current (click)="showDiv(options)" class="hiddenInput" type="number" min="0"
*ngIf="(profile.maximumInstalls > 0)" value="{{profile.maximumInstalls}}">
<input #current (click)="showDiv(options)" class="hiddenInput" type="number" min="0"
*ngIf="(profile.maximumInstalls == 0)" value="">
<div #options hidden="true">
<mat-icon (click)="changeMaxInstalls(current, profile, options)">done</mat-icon>
<mat-icon (click)="hideDiv(options)">clear</mat-icon>
</div>
</td>
</ng-container>
我希望changeMaxInstalls()
将current
变量传递给函数;但是,它会引发current
未定义的错误。此外,在我的 IDE 中,#current
引用的声明被标记为“未使用的局部变量”。showDiv()
和hideDiv()
参考options
没有问题。
解决方案
您对两个元素使用相同的模板引用变量#current)
( 。这些变量旨在在整个模板中是唯一的。Angular 文档在我链接的帖子中说以下内容:
引用变量的范围是整个模板。不要在同一个模板中多次定义同一个变量名。运行时值将是不可预测的。
推荐阅读
- java - 在java中比较args值和字符串
- arrays - 使用 MPI Fortran 收集大型二维数组
- python - 为什么在执行“选择”以将所有“a”标签放入列表后尝试检索 href 值时出现错误?BeautifulSoup 硒 Python
- javascript - HTTP POST 如何在邮递员中将这篇文章重现为有角度的?
- swift - 如何以编程方式导航到 UIViewController?
- python - 为什么 numpy 数组上的 set 函数返回略有不同的值?
- javascript - 地图功能未应用于所有表达式
- oauth-2.0 - 如何使用 github api 从官方/master 中提取经过身份验证的用户?
- hadoop - Hadoop jobtracker的tracking url无法访问
- github - 如何在 GitHub 中删除我的存储库?