我无法理解如何从服务器响应呈现的元素中触发特定函数。
在组件的模板中,我有类似div的内容(id =" myDiv")
我向服务器发出请求,该服务器返回HTML标记。所以在我的组件中,我会做类似的事情
$('#myDiv').html(response);
这个问题是我得到一个带有HTML标记的完整页面,每个<li>
项目都有一个标记:<a href="javascript: myFunction();"
。由于所有元素都已经作为普通html传递,我如何对每个li项目进行(click)="myFunction"
事件绑定?
编辑:(对于格式感到抱歉,因为你可以看到我之前从未真正发布任何内容)
我有一个功能
loadData(val){
let url = 'http://www.something.com/some-endpoint?lg='+val;
$.post(url,function(data)){
$('#myDiv').html(data);
}
}
data
响应很长很复杂,而且在那里的某个地方有:
<li><a href="javascript: loadData(@id)"></a></li>
当用户点击a标签时,我无法运行loadData()
,因为angular不会触发该功能。
我无法添加(click)="loadData()"
,因为它是我从服务器获得的回复。
答案 0 :(得分:0)
当您动态添加li
时,这应该可以正常工作
$(document).on('click', 'li', function(){
//Do what ever you want on click event
});
或者
$(document).on('click', 'a', function(){
//Do what ever you want on click event
});
或者您可以为所有人添加课程&#39; a&#39;标签并尝试
$(document).on('click', 'NameOfClassAddedinATages', function(){
//Do what ever you want on click event
});