在我的组件中,我正在初始化基础
ngOnInit() {
$(document).foundation();
}
我有一个用于打开和关闭我的模态的点击处理程序
openOtherIncomeSelect(category) {
let modal = new Foundation.Reveal($('#'+category));
modal.open();
}
closeOtherIncomeModal(category, action) {
let modal = new Foundation.Reveal($('#'+category));
modal.close();
$('.reveal-overlay').remove();
}
一切运行良好,但是对于对Foundation.Reveal((的两个引用中的每一个,我都得到了一个编译时错误
error TS2339: Property 'Reveal' does not exist on type 'FoundationStatic'.
虽然不是我问题的直接解决方案,但我找到了一个可接受的解决方法。我在 ts 中打开模态的更新和工作处理程序是
openOtherIncomeSelect(category) {
if (this.openedModals.indexOf(category) === -1) {
this.openedModals.push(category);
$('#'+category).foundation();
}
let modalElement = $('#'+category);
modalElement.foundation('open');
}
closeOtherIncomeModal(category, action) {
let modalElement = $('#'+category);
modalElement.foundation('close');
}
请注意,使用这种方法,我需要在每个模态元素上初始化基础(我在此页面上有几个(,然后才能操作它。由于如果我在同一元素上初始化 foundation 两次,我会收到 JS 错误,所以我会跟踪数组中已初始化的元素。这样,用户可以毫无问题地打开同一模式两次。