我第一次使用Foundation并在现有的Angular Dart应用程序中使用它。
可以多次拨打$(document).foundation();
吗?
在我的JS中,我有以下内容:
document.addEventListener("onFoundationify", function(event){
$(document).foundation();
});
然后在我的Angular组件的Dart代码中,我调用
@override
ngAfterContentInit() {
document.dispatchEvent(new CustomEvent("onFoundationify"));
}
因此,每个Dart组件都会在ngAfterContentInit
上触发此事件,然后调用$(document).foundation();
有没有更好的方法来确定刚出现在DOM中的Angular Dart组件,或者我正在做得很好/安全?
答案 0 :(得分:1)
这似乎是一种更清洁的方式:
Angular Dart:
@override
ngAfterContentInit() {
new Future.delayed(Duration.ZERO, (){
document.dispatchEvent(new CustomEvent("onSetupAccordian"));
});
}
JavaScript的:
<script type="text/javascript">
document.addEventListener("onSetupAccordian", function (event) {
new Foundation.Accordion($("element-id-from-event"), {});
});
</script>
这明确地设置了特定的手风琴而不是重新连接所有东西。