0

Extjs4.1を使用してアプリを作成しようとしています。一般的には、西側にツリーパネルがあり、実際にはタブホルダーパネルである中央のパネルがあるビューポートです。ユーザーがツリーノードをクリックすると、タブが中央のビューに表示されます。ツリーパネルで、ノードを選択すると選択が解除される(deselectAll)という属性を設定しました。これは、ユーザーがさまざまな場所(各タブ内など)から多くのタブを開くことができるためです。しかし、上記の属性を設定すると、エラーが発生します(「データ」は未定義です)。未定義のデータは、ツリーノードに関連するデータです。それで、選択モデルに関する質問:

この問題にどのように対処できますか(解決策は最初のノードを選択することかもしれませんが、私はそれを望んでいません)?

履歴ユーティリティについては、ブラウザの戻るボタンを実装する必要があります。特にブラウザの更新ボタンを無効にしたい。ユーザーが開いた場合、たとえば15個のタブを開いて、誤ってブラウザの更新をクリックするか、「F5」をクリックすると、すべてが失われます。私は多くのことを試みましたが、運がありませんでした。「Exthistoryutil」がわかりません。それで、

そこに良い例はありますか?

誰かがそれを行う方法について私を導くことができますか?

アプリケーションは、新しい「MVC」アーキテクチャを尊重して構築されていることに注意してください。

4

1 に答える 1

0

ページにフォーカスがある場合、更新イベントの停止は非常に簡単です。例えば:

Ext.getDoc().on('keypress', function(event) {
    if (event.getCharCode() == event.F5) {
        event.stopEvent();
        console.log('you stopped the refresh event');
    }
});

ページにフォーカスがない場合は、何もできません。ただし、ほとんどの場合、別のブラウザタブを開くとページのフォーカスが失われるため、F5は代わりにそのタブを更新します。

私はまだあなたの質問の最初の部分に私の知恵を包み込もうとしていますが、私はそれを共有しようと思いました。

編集

デフォルトのブラウザの動作(非常に限られたベースでしか実行できないこと)を停止しようとする代わりに、状態管理を調べる必要があります。ExtJSは多くのコンポーネントでそれをサポートしています。これがExtJSのです。

また、ブラウザの履歴を制御する例もあります。

于 2012-05-29T23:27:46.460 に答える