2

もう使用しないことがわかっているが、後で同じクラスの新しいインスタンスを使用したいコンポーネントを削除する正しい方法は何ですか?

たとえば、作成フォームは を使用してビューポートに追加されますExt.Viewport.add()が、一度送信されたらフォームを破棄したいので、次にユーザーがアイテムを作成しようとすると、新しいフォームが生成されます (つまり、新しいコンポーネントがインスタンス化されます)。

Ext.Viewport.remove(form, false)との両方を試しましExt.Viewport.remove(form, true)たが、両方ともエラーが発生しました: TypeError: Cannot set property 'className' of undefined

4

1 に答える 1

1

どうやら、これが機能しなかった理由は、削除するコンポーネントに含まれているコンポーネントのイベントハンドラーから実行したコードからコンポーネントを削除しようとしたためです。

たとえば、ボタンをクリックして、ボタンがすぐにそのコンテナコンポーネントをビューポートから削除しようとすると、削除は成功しますが、ボタン自体も同様に、操作するDOM要素なしでボタンリリースイベントが呼び出されます。削除されました。

Ext.Viewport.remove(...)簡単な回避策は、短いタイムアウトの後に呼び出すことです。

于 2011-11-04T09:25:58.410 に答える