2016-04-14 13 views
0

私はバックボーンでMDLを使用しています。 MDLコンポーネントを含むビューを削除する前にコンポーネントの登録を解除するにはどうすればよいですか。バックボーンビューでMaterial Disign Liteコンポーネントを登録解除

コンポーネントを登録するには、私はcomponentsHandler.upgradeDOM() MDLの関数を使用しています。しかし、componentsHandler.unregisterComponents()がないと、メモリリークが発生します。

私は(=

+0

私は*これらの2つの方法は、実際に*何をすべきかを説明し何かを見つけることができませんMDLのAPIのいずれかのドキュメントは?あります。 – rockerest

+0

いいえ、しかし、uができます[GitHub]のJSファイルのコメントを読む(https:// github.com/google/material-design-lite/blob/master/src/mdlComponentHandler.js)。 [Wiki](https://github.com/google/material-design-lite/wiki/How-the-Component-Handler-works)のドキュメント –

+0

このhttp:// stackoverflowをご覧ください。 com/q/35940124/2115381 –

答えて

1

をそれらの登録を解除するために、現在のビューに関連付けられMDLコンポーネントを得ることができない私は、この問題の解決策を見つけた私はすべての私のバックボーンビューのremoveメソッドでこのコードを追加します。

var components = this.el.querySelectorAll('[data-upgraded]'); 
if (components.length > 0) { 
componentHandler.downgradeElements(components); 
} 

このコードビューのすべてのアップグレードされた要素を見つけ、それらをダウングレード。

関連する問題