如何从Angular插值中的html标签中获取值?

时间:2018-01-18 04:21:30

标签: javascript regex angular

我有一个带有以下标记的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?

2 个答案:

答案 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]