无法立即销毁使用 Foundation for Apps 创建的模态元素

Cannot immediately destroy modal elements created with Foundation for Apps

我正在使用 Foundation for Apps 附带的 ModalFactory 以编程方式创建模式,效果很好,但我的用例要求我在每次调用时强制重绘模式。但是,在尝试销毁模态时,我发现 ModalFactory.destroy 的源代码在销毁似乎导致各种问题的元素之前包含 3 秒超时。

我想知道是否有立即销毁元素的解决方法。

// ModalFactory.destroy source:      
function destroy() {
    self.deactivate();
    setTimeout(function() {
      scope.$destroy();
      element.remove();
      destroyed = true;
    }, 3000);
    foundationApi.unsubscribe(id);
}

当您使用 setTimeout 函数时,它是 JavaScript 原生函数,通过 运行ning,您的 digest 循环将不会触发摘要循环。如果您更改了任何 scope 级别对象,结果将无法绑定。为避免此类问题,angular 提供了 $timeout 服务,其工作方式与 setTimeout 相同,仅在回调时间完成后执行 运行 摘要周期。

// ModalFactory.destroy source:      
function destroy() {
    self.deactivate();
    $timeout(function() {
      scope.$destroy();
      element.remove();
      destroyed = true;
    }, 3000);
    foundationApi.unsubscribe(id);
}