3

リストからアイテム開示の詳細ビューを読み込もうとしていますが、NavigationView と「push()」コマンドを使用していません。

コントローラー:

Ext.define('App.controller.MyPlans', {
    extend: 'Ext.app.Controller',
    requires: ['App.view.EventDetail',
        'App.view.PlansContainer'],

    config: {
        refs: {

        },
        control: {
            'MyPlansList': {
                disclose: 'onDisclose'
            }
        }
    },

    onDisclose: function (view, record) {
        console.log("My Plans list disclosure " + record.get('id'));
        var eventDetailView = Ext.create('App.view.EventDetail');
        eventDetailView.setRecord(record);
        Ext.Viewport.setActiveItem(eventDetailView);
    }
});

見る:

Ext.define('App.view.EventDetail', {
    extend: 'Ext.Panel',
    xtype: 'EventDetail',

    config: {

        items: [{
            xtype: 'toolbar',
            docked: 'top',
            title: 'Event Name',
            items: [{
                xtype: 'button',
                id: 'addRunBackBtn',
                ui: 'back',
                text: 'Back'
            }]
        }, {
            xtype: 'panel',
            styleHtmlContent: true,
            itemTpl: [
                '<h1>{name}</h1>',
                '<h2>{location}</h2>',
                '<h2>{date}</h2>']
        }],

    }
});

基本的に、「setRecord()」コマンドを使用してデータをビューに渡そうとしていますが、ビューに何もロードされていないようです。何かご意見は??

ありがとう

4

3 に答える 3

1

ItemTplの代わりにTplと書くだけです。itemTplがリストxtypeなしで存在することは疑わしいです。

他のものは構成内にTplを置きます:

{tpl:['<div class="ListItemContent">{descriptionddata}</div>']}

私の前/上の答えは良いですが、コントローラーではなくビュー内にフォーマットを保持する場合は、setRecordの代わりにsetDataを使用して機能します

detailview.setData({title:record.get('title'), description:record.get('descriptiondata')});
于 2012-11-16T07:18:34.020 に答える
0

私はここで問題を見つけました:

パネルにitemTplがありません

{
    xtype: 'panel',
    styleHtmlContent: true,
    itemTpl : [
        '<h1>{name}</h1>',
        '<h2>{location}</h2>',
        '<h2>{date}</h2>'
    ]
}

それを行うための可能な方法の1つは次のとおりです。

ビューを変更します。

{
    xtype: 'panel',
    id: 'thePanel',
    styleHtmlContent: true
}

コントローラを変更します。

onDisclose: function(me, record, target, index, e, eOpts) {
  ... 
  Ext.getCmp('thePanel').setHtml('<h1>'+record.get('name')+'</h1><h2>'+record.get('location')+'</h2><h2>'+record.get('date')'</h2>'); //For setting the Data
  ...
}

これがお役に立てば幸いです。

于 2012-11-16T07:16:17.820 に答える