我很困,不知道如何解决我的问题......
简化:我有一个基于绑定创建 ulist 的组件,如下所示:
@Component({
selector: "template",
template: `
<ul>
<li *ng-for="#challenge of jobs.challenges">{{challenge}}</li>
</ul>
`})
export class JobTemplate{
jobs: Jobs;
constructor(jobs:Jobs){
this.jobs = jobs
}
}
组件选择器/主机嵌入在由 php 回显的普通 html 流中,用于替换预定义的 ulist。问题在于,在普通站点上,使用 ulist 后的脚本标记对列表应用了一些 jquery 魔法。
由于脚本标记在我的组件模板加载完成之前被回显,因此 jquery 调用将找不到我的模板 DOM 的元素。将脚本标签放在我的模板中(最后)不起作用;它似乎只是被忽略了。
<ul>
<a><li *ng-for="#challenge of jobs.challenges">{{challenge}}</li></a>
</ul>
<script>
$("ul a").on("click", function (event)
{
var parent = $(this).parent();
if(parent.hasClass('active'))
....slideToggle("normal");
else
....
});
</script>
该站点还使用基础框架,每次将新元素添加到页面时(例如,通过外部更新我的组件的绑定),我都需要调用$(document).foundation()
.
所以我的问题是,当我不知道我的模板是否已完成创建时,如何实现在我的模板 DOM 上调用 jquery。在我的组件模板中定义时,onload 处理程序也不起作用。
我已经阅读了 AfterViewInit,但我对它有点不知所措。有人可以把我推向正确的方向吗?
我怎样才能知道我的组件的模板何时已经完全插入到“主”DOM 中?