javascript - 在 Backbone View 中取消注册 Material Design Lite 组件

标签 javascript backbone.js material-design-lite

我正在将 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/

相关文章:

material-design-lite - 即使我调用 componentHandler.upgradeDom(),汉堡图标也没有显示;

material-design-lite - 如何在 Material Design Lite 中将事件附加到表格复选框

javascript - 鼠标坐标似乎错误地放置了 Raphael.js 对象

javascript - 忘记密码 php 中的代码不起作用

javascript - "dispatch"未捕获类型错误 React-Redux

javascript - 覆盖 Backbone 的 Collection-fetch

javascript - 为什么 Google Analytics 不跟踪我的单个页面的浏览量?

backbone.js - Backbone 点击事件未触发

backbone.js - 如何使用 underscore.js 的 groupBy 按字符串属性对 Backbone.js 中的集合进行分组?

html - 我的图标没有向右浮动