打字稿中的HTMLElement.addEventListener问题

时间:2018-04-06 19:16:43

标签: angular typescript ionic-framework

说明:我的ts文件中有一个js代码。它从点击的范围获取属性,我想在.ts变量中捕获属性的值

请参阅我的ngOnInit代码,我只需要link_idthis.actionid的值并调用函数callpagedata()

我在home.ts中有以下js代码:

actionid;
 ngOnInit(){
var mainDiv = document.getElementById("mainDiv");
mainDiv.addEventListener("click", function (event) {
  console.log("Inside Event Listener");
  event.preventDefault();
    var link_id = $(event.target).attr("action");
    console.log("Actionid is:: " + link_id);
});
}
  

我只想在this.actionid中使用link_id的值并调用函数callpagedata()

callpagedata(){

}

2 个答案:

答案 0 :(得分:0)

要获取HTML属性,请执行node.getAttribute(attr)node.attributes也返回一种数组。 E.g。

this.actionid.getAttribute('action')

(这得到属性N的当前值,而不是缓存值。在E4X中,执行(node@name).toString()

要访问link_id中的action_id(这是您之前的问题版本中的元素),有多种方法。我不确定action_id是否是一个常数元素或任何东西,所以我会给你一个基本的例子:

/* Single variable that stores an unique link_id at a time.
 */
private g_link_id: any = null;

ngOnInit() {
    mainDiv.addEventListener("click", (function (event) {
        console.log('Inside Event Listener');
        event.preventDefault();
        g_link_id = $(event.target).attr("action");
        console.log("Actionid is:: " + g_link_id);
    });
}

accessLinkIdInActionId() {
    g_link_id // ?
}

g_link_id只是一个预先定义的变量。其他方法是将actionid映射到link_id

答案 1 :(得分:-1)

如果您正在寻找以Angular / Ionic方式做事,您可以简单地使用click指令:

Home.html:

<span class="button-text" action="createNew" (click)="onSpanClick($event);">
    Click me!
</span>

Home.ts

private actionId: string;

onSpanClick(event) {    
    // Get the span that was clicked on from the event: 
    let element = event.target;

    this.actionid = element.getAttribute('action'); 
    // actionId is now 'createNew'. 
}
相关问题