我有一个带有以下标记的Angular应用程序:
<p>{{item.content}}</p>
显示的内容如下所示:
<p>You can find the content here <a href='javascript:;' ZID='01' TID='11' EID='21' type='link'>TEST</a> and don't forget to visit other sites.</p>
换句话说,角度插值的结果总是一个字符串,其中的单词与&#39; a&#39;标签具有各种属性。
由于这是一个Angular(和Cordova,但在此上下文中无关紧要)应用程序,我真正需要做的是使用这样的routerLink:
<p [routerLink]="['/01/11/21']">You can find the content here <a href='javascript:;' ZID='01' TID='11' EID='21' type='link'>TEST</a> and don't forget to visit other sites.</p>
问题是:如何从Angular interpolation {{item.content}}中获取ZID,TID和EID属性的值并将其插入routerLink?
答案 0 :(得分:1)
您可以通过getAttribute
var x = document.getElementsByTagName("a")[0].getAttribute("ZID");
答案 1 :(得分:0)
Shailesh已经发布了正确的答案,在这里我将其包装到Angular Page ngAfterViewInit
的生命周期之一,而不是从document
获取,我通过ElementRef
搜索当前组件。现在,您必须确定页面中有多少a
个标记以及如何从中获取所需的属性,现在它都是关于逻辑的。
import { Component, OnInit, ElementRef} from '@angular/core';
constructor(public el: ElementRef) {
}
ngAfterViewInit(){
var x = this.el.nativeElement.getElementsByTagName("a")[0].getAttribute("ZID");
console.log(x);
}
您还可以获取上述其他属性并将它们合并到一个变量中,并将该变量分配给[routerLink]
。