你需要寻找到_assertNoReferenceDuplicationOnTemplate方法:
_assertNoReferenceDuplicationOnTemplate(result: TemplateAst[], errors): void {
const existingReferences: string[] = [];
result.filter(element => !!(<any>element).references)
.forEach(element => (<any>element).references.forEach((reference: ReferenceAst) => {
const name = reference.name;
if (existingReferences.indexOf(name) < 0) {
existingReferences.push(name);
} else {
const error = new TemplateParseError(
`Reference "#${name}" is defined several times`, reference.sourceSpan,
ParseErrorLevel.ERROR);
errors.push(error);
}
}));
}
角度编译器,一个节点类型是ElementAST具有references
属性创建AST:
export class ElementAst implements TemplateAst {
constructor(
public name: string,
public references: ReferenceAst[],
...
这是检查的财产在_assertNoReferenceDuplicationOnTemplate
函数中,如果发现错误生成。
但编译器已经这么做了_Reference“#t”被定义了好几次(“_ –
”有多么令人尴尬,你是对的......无论如何非常感谢,我会查看源文件并尝试发现当我找到它的时候我怎么没发现它 –
我不想看到任何令人尴尬的想知道更多东西以及偶尔错过某些东西的时候:)我有时也会在做一些不熟悉的东西时也这样做我告诉你在哪里你问的逻辑发生了。 –