0

ExtJS 4.1 & DeftJS 0.6.8

ドキュメントによると"References to view components can be established via the control annotation and view-relative component query selectors"

ドキュメントの例:

control: {
        submitButton: 'panel > button[text="Submit"]'
    }

したがって、私の場合、次のようにネストされたメニューのボタンにアクセスしたいと考えています。

  ...
  extend: 'Ext.tree.Panel',
  lid: 'mytreepanel',

  dockedItems: [{
     xtype: 'toolbar',
     lid: 'mybbar',
     items: [{
        xtype: 'splitbutton',
        lid: 'mysplitbutton',
        menu: {
           lid: 'mymenu',
           items: [{
              lid: 'createFolder',
              text: 'Create folder',
           }]
        }
     }]
  }]

私の試み:

control: {
         createFolder: {
            selector : '[lid=createFolder]',
         // selector : 'menu[lid=createFolder]',
         // selector : 'mytreepanel > menu[lid=createFolder]',
         // selector : 'treepanel > toolbar > splitbutton > menu[lid=createFolder]',
            listeners: {
               click: 'createFolder'
            }
         }
}

何も機能しませんでした。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

mixins: ['Deft.mixin.Controllable']解決策は、ビューを制御可能にするのを忘れていたものを追加することでした。

だから今、すべてが正常に動作します:

createFolder: {
            selector : '[lid=createFolder]',
            listeners: {
               click: 'createFolder'
            }
         }
于 2012-12-14T08:48:28.227 に答える
0

あなたの例 ( ) がどのドキュメントで見つかったかはわかりませんがcontrol: { submitButton: 'panel > button[text="Submit"]' }、私にはまったく機能しません。

sencha のドキュメントに従って、次のコントローラー クラスを作成しました。

Ext.define('Pandora.controller.Main', {
    extend: 'Ext.app.Controller',

    init: function() {
        this.control({
            '[lid=mytreepanel] menu[lid=mymenu] menuitem[lid=createFolder]': {
                click: function(){ alert(123); }
            }
        });
    }
});

このcontrolクリックの定義では機能しています。また、クリック ハンドラーがどのようにアタッチされているかにも注意してください。文字列ではなく、コールバックを提供する必要があります。

于 2012-12-13T10:19:01.797 に答える