2012-02-29 16 views
0

を実行することはできません。なぜ私の "属性"プロパティを取得できないのですか?煎茶タッチNestedlistは、私は、私はそれを実行したとき、私は私がgetDetailCardのために置くとして、私は多くの類似のコードを見てきました</p> <blockquote> <p>Uncaught TypeError: Cannot read property 'attributes' of undefined</p> </blockquote> <p>のようなエラーが発生しました、煎茶Touch2については、以下のコードを持っているgetDetailCard

Ext.define('MyApp.view.MainTabPanel', { 
    extend: 'Ext.tab.Panel', 

    config: { 
     tabBar: { 
      docked: 'top' 
     }, 
     items: [ 
      { 
       xtype: 'container', 
       title: 'Documents' 
      }, 
      { 
       xtype: 'nestedlist', 
       itemId: 'newslist', 
       ui: 'dark', 
       displayField: 'title', 
       store: 'NewsStoreXML', 
       title: 'News', 
       getDetailCard: function(item, parent) { 
        var itemData = item.attributes.record.data, 
        parentData = parent.attributes.record.data, 
        detailCard = new Ext.Panel({ 
         scroll: 'vertical', 
         styleHtmlContent: true, 
         tpl: ["<h2>{text}</h2>","{content}"] 
        }); 
        detailCard.update(itemData); 
        this.backButton.setText(parentData.text); 
        return detailCard; 
       } 
      }, 
      { 
       xtype: 'container', 
       title: 'Calendar' 
      } 
     ] 
    }, 
    requires: [ 
       'Ext.dataview.NestedList', 
       'Ext.TitleBar' 
      ] 

}); 

答えて

4

同じエラーが発生しました。あなたのアイテムオブジェクトがnullでないかどうかをチェックするifステートメントでコードを囲んで、それを修正しました。

getDetailCard: function(item, parent) { 
    if(item) { 
     // do some job on item object here... 
     var itemData = item.attributes.record.data, 
    } 
    var parentData = parent.attributes.record.data, 
    detailCard = new Ext.Panel({ 
     scroll: 'vertical', 
     styleHtmlContent: true, 
     tpl: ["<h2>{text}</h2>","{content}"] 
    }); 
    detailCard.update(itemData); 
    this.backButton.setText(parentData.text); 
    return detailCard; 
} 

console.log(項目)を使用して、その作成方法を確認したりアンダーサンドしたりできます。私にとっては、item.data.textを取得するなどしてテキストを取得できます。あなたは(良いのツリーを残す)detailcardに切り替えるしようとしている場合

this.backButton.setText(parentData.text); 
==> useTitleAsBackText : true 

getDetailCardだけあなたの「アイテム」を与えているが、それぞれ2回実行します:すべての最初の

1

あなたが使用することをお勧めしますネストされたリストの内側を切り替えます。

私が見るところでは、アイテムの詳細ビューを設定しようとしています。

leafitemtap(this, list, index, target, record, e, eOpts) 

ユーザーがリーフリスト項目をタップすると発生します。

record.parentNode.getData()。text

良いことは、一度あなたがリーフになったら起動し、ネストされたリスト内のリストを切り替えるたびにではないということです。

関連する問題

 関連する問題