Angular 2 : about duplicated declarations of Template Reference Variable in a template

标签 angular angular2-template

我发现在模板中使用模板引用变量存在一些问题。

当我在根级别声明相同的模板引用变量(如下所示)时,运行时编译器会抛出错误。

示例>

 <input type="text" id="n-1" #myInput />
 <input type="text" id="n-2" #myInput />

但是,当将重复的模板引用变量声明为子节点时,则没有问题。

示例>

 <div>
   <input type="text" id="n-1" #myInput />
   <input type="text" id="n-2" #myInput />
 </div>

这里是示例代码:https://embed.plnkr.co/kqTXfh/

我发现 Angular 编译器会检查模板引用变量声明的重复。

这是重复检查功能代码:https://github.com/angular/angular/blob/master/modules/%40angular/compiler/src/template_parser/template_parser.ts#L179-L196

总而言之,我的问题是我可以在子节点中使用重复的模板引用变量吗?

这是预期的结果吗?

提前致谢。

最佳答案

回复很晚了。尽管如果有人来到此页面也有同样的疑问,请做出回应。

根据官方文档不要在同一模板中多次定义相同的变量名称,因为运行时值将是不可预测的。

https://angular.io/guide/template-reference-variables#template-variable-scope

关于 Angular 2 : about duplicated declarations of Template Reference Variable in a template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41178810/

相关文章:

Angular 2基于桌面或移动的不同 View

Angular 2 : Display different "toolbar" components depending on main navigation

Angular > 2 动态对象键导致模板解析错误

angular - 以 Angular 5 迭代复杂的 JSON 结构

asp.net - Asp.Net MVC 5 框架(非核心)中的 Angular 4 服务器端渲染

c# - 如何将 C# 类映射到 Angular 对象

javascript - 如何在不同组件的 angular2 中设置 css 样式,以便它们能够很好地适应彼此?

javascript - Angular 8,如何发送您从订阅另一个组件的服务中的 http 调用收到的用户信息?

angular - 在 angular2 中使用 setElementClass 时,“classList”未定义

angular - 具有变量 Angular 2 的 Concat 类名