0

Extjsプロジェクトがあり、ファイルは次のとおりです。

アプリ:

-> ビュー -> メイン -> MainController.js

-> ビュー -> カテゴリ -> CategoriesController.js

クラシック:

-> 見る

-> メイン -> Main.js

->カテゴリ -> Categories.js

そして、これにはtreelistを使用します。

今、私はユーザーがツリーリストノードをクリックしたときにビューを生成したいと考えています。例: カテゴリ ノードをクリックすると、Category.js ビューが生成されます。

これどうやってするの?

4

1 に答える 1

1

treelist( を含むビューで) ユーザーのクリック イベントを処理するには、リスナーを に関連付ける必要がありますtreelistselectionchangeイベントを聞くことができます。

{
  xtype: 'treelist',
  store: 'NavigationTree',
  listeners: {
    selectionchange: 'onNavigationTreeSelectionChange'
  }
}

ハンドラー (ビュー コントローラー) で、onNavigationTreeSelectionChangeクリックしたノードのプロパティに基づいて、新しいビューを作成する必要があります。何かのようなもの:

onNavigationTreeSelectionChange: function (tree, node) {
    console.log('onNavigationTreeSelectionChange');
    var tp = this.getPlanPresentationBar();
    var newView;
    if (node && node.get('extjsview')) {
        switch (node.get('extjsview')) {
            case 'Category':
                newView = new MyApp.view.Category({});
                break;
            case 'sync.Sync':
                newView = new MyApp.view.sync.Sync({});
                break;
            default:
                break;
        }
        tp.add(newView);
    }
},

この例では、ノードのプロパティを使用して、extjsview作成するビューを認識します (ユーザーがカテゴリ ノードをクリックしたかどうかを確認する場合)。サンプル コードでは、newView が既存のタブパネルに追加されますが、実際にはアプリケーションの残りの部分に依存します。

Tarabassが既に述べたように、ダッシュボードの例を確認する必要があります。

于 2015-12-15T23:00:42.907 に答える