如何从 angular 5 中的自定义属性中获取值?

How to get value from custom attribute in angular 5?

我是 angular 的新手。我已将自定义属性添加到 span 标签,如下所示

<span data-toggle="modal" data-target="#myModal" style="padding: 2px;cursor: pointer;background: #e60000;color: #fff" (click)="loadnewsdetail()" [attr.newsid]="news.NewsId">Read More </span>

我想获取属性 newsid 的值,因为我在下面的代码中使用 jQuery

 loadnewsdetail() {
         var a = $(this).attr('newsid');
         alert(a);
}

它给我未定义。如何在 angular 中执行此操作以及为什么它未定义?

您可以将其作为参数传递给 click

而不是获取 newsId
(click)="loadnewsdetail(news.NewsId)"

然后像这样得到它。

 loadnewsdetail(newsId) {

    alert(newsId);
  }

或者,如果您想获取属性,您可以将事件传递给函数(在您的情况下实际上不需要)。但是,这里是你如何做到的。

(click)="loadnewsdetail($event)"

并使用

获取该值
loadnewsdetail(newsId) { 
    alert(newsId.target.getAttribute("newsid"));
}

demo