我正在将 MDL 与 Backbone 结合使用。 在删除包含任何 MDL 组件的 View 之前,如何取消注册组件。
为了注册组件,我使用 MDL 中的 componentsHandler.upgradeDOM()
函数。但是如果没有componentsHandler.unregisterComponents()
就会出现内存泄漏。
我无法获取与当前 View 关联的 MDL 组件来取消注册它们 =(
最佳答案
我找到了这个问题的解决方案。我只是在所有 Backbone View 的删除方法中添加此代码:
var components = this.el.querySelectorAll('[data-upgraded]');
if (components.length > 0) {
componentHandler.downgradeElements(components);
}
此代码查找 View 中所有升级的元素并将其降级。
关于javascript - 在 Backbone View 中取消注册 Material Design Lite 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624839/