0

私はextjs4で働いています。私はツリービューを作成しました-

Ext.define('Balaee.view.qb.qbquestion.tree1', {

    extend: 'Ext.tree.Panel',
    title: 'Simple Tree',
    width: 200,
   id:'tree1',
    height: 150,

    alias : 'widget.tree1',
    store:'qb.qbquestionStore',
    displayField: 'text',
    rootVisible : true,
    multiSelect : true,
    valueField:'id',
    renderTo: Ext.getBody(),}),

サーバーを介して送信されたJsonは、ツリーパネルの上に適切にアタッチされます。しかし、ツリーノードをクリックしようとすると、mozilla firefox で「TypeError: listener.fireFn is undefined」というエラーが表示され、chrome では「Uncaught TypeError: Undefined のメソッド 'apply' を呼び出せません」というエラーが表示されます。また、ノードは 1 回だけ展開されます。itemclickのコントローラーで、コードを次のように記述しました-

init : function() {
        this.control({
                'tree1':{
                     itemclick: {

                           fn: function (view, record, item, index, e) {

                           if(record.data.checked==true)
                               {
                                  console.log(record.data.id);   

                               }
                           }
                       },

では、エラーを取り除くためにどのような変更を行う必要がありますか?

4

1 に答える 1

0

'tree1'間違ったセレクターです。イベント ハンドラーをコンポーネントにその id の前にハッシュタグ付きの id を付けてアタッチするには#:

this.control({
    '#tree1':{

アップデート

行を逃しましたalias : 'widget.tree1'。したがって、あなたのセレクターは正しかったです。

リスナーを次のように変更してみてください。

'tree1':{
    itemclick:  function (view, record, item, index, e) {
        if(record.data.checked==true)
        {
            console.log(record.data.id);   
        }
    }

コードに示されているリスナー形式はサポートされていないと思います。

于 2013-06-21T11:28:15.580 に答える