Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular2重复选择器_Javascript_Angular - Fatal编程技术网

Javascript Angular2重复选择器

Javascript Angular2重复选择器,javascript,angular,Javascript,Angular,我正在做这样的事情,我正在动态地声明选择器 <div ngFor="let x of y;let i = index;"> <input *ngIf="i === 0" #selector0 type="number" value="{{item.value}}"> <input *ngIf="i === 1" #selector1 type="number" value="{{item.value}}"> </div> 有没

我正在做这样的事情,我正在动态地声明选择器

<div ngFor="let x of y;let i = index;">
    <input *ngIf="i === 0" #selector0 type="number" value="{{item.value}}">
    <input *ngIf="i === 1" #selector1 type="number" value="{{item.value}}">
</div>

有没有一种方法可以像下面这样做,我不需要重复我自己

 <input #selector{{i}} type="number" value="{{item.value}}">

 <button (click)="submit(selector0)">


我不是在寻找替代方法,只是想知道是否可以使用动态选择器。

将其分配给数据属性,然后可以使用javascript的querySelector

<input attr.input="{{i}}" type="number" value="{{item.value}}">

所以我们从这里开始,Angular将其定义为“模板参考变量”:

好的,让我们试着找到它的来源

所以我们试图解析出元素。。。让我们看看它是如何定义的:

我将设置一个断点,看看发生了什么

编辑:

我在“_parseAttr”函数中放置了一个断点,以查看它在查看模板引用时看到的内容:

以下是查找绑定的调用:

var hasBinding = _this._parseAttr(isTemplateElement, attr, matchableAttrs, elementOrDirectiveProps, animationProps, events, elementOrDirectiveRefs, elementVars);
以及调试器为属性名称输出的内容:

attr = Attribute {name: "#testerno{{check}}", value: "", sourceSpan: ParseSourceSpan, valueSpan: undefined}
因此,它看起来像属性name
name:“#testerno{{{check}}”
没有被解析以查看{{check}}是否是角度变量,它只是将其解释为字符串的一部分

因此,你不能做你上面说的事。在本例中,它认为引用名称是
“#testerno{{{check}”

或者,在您的例子中,
选择器{{i}


请注意,这是有意义的,因为“#”是在编译器级别使用的,并且不存在于输出html中,因此它无法动态创建该引用。

如何在类中使用
#input{{i}
?也许可以使用
@ViewChildren
来获取所有输入信息?我更新了我的问题以使其更清晰-我想在线完成这些我不明白。您是否也为每个输入生成一个按钮?你真正的目标是什么?我想循环,让我的循环生成输入,每个输入都有一个唯一的选择器。