0

左側にリストがあり、右側にタップされたリストアイテムの詳細を表示するコンテナがある単純なビューがあります。

Ext.define('app.view.activity.ListContainer', {
    extend: 'Ext.Container',
    alias: 'widget.activitylistcontainer',
    requires: [
        'app.view.activity.List',
        'app.view.activity.ListDetail'
    ],
    config: {
        layout: {
            type: 'hbox'
        },
        items: [
            {
                xtype: 'activitylist',
                flex: 4
            },
            {
                xtype: 'activitylistdetail',
                flex: 5
            }
        ]
    }
});

ストアがロードされたら、ストアの最初のレコードの詳細を表示しactivity.Listたいと思います。activity.ListDetail私の問題はactivity.ListContainer、の親として認識されていないために到達できないことですactivity.List

onActivityListInitialize: function(component, options){
    var activityStore = Ext.create('app.store.Activity');

    activityStore.on('load', function(store, records, successful, operation, eOpts){
        var activityListHasContainer = component.hasParent(),
            activityListContainer = component.getParent(),
            activityListContainerUp = component.up('activitylistcontainer');
        console.log(component, component.parent, activityListHasContainer, activityListContainer, activityListContainerUp);
    });

    component.setStore(activityStore);
}

の出力はconsole.logですObject, undefined, false, undefined, undefined。オブジェクトを検査するとプロパティがあるので、に含めcomponent.parentましたが、何らかの理由で、エージングアウトすると表示されます。logparentundefinedlog

誰かがこれに光を当てるのを手伝ってもらえますか?煎茶activity.ListContainerの親とはみなされませんか?activity.Listそれとも、これを台無しにしているのは私のアプリの他の何かですか?それが役立つ場合activity.ListContainerは、navigationview

4

1 に答える 1

0

イベントがトリガーactivity.ListContainerされた時点では存在しないことが判明しました。activity.ActivityList initialize私の解決策は、このメソッドをactivity.ListContainer initializeイベントに移動することです。

于 2013-03-15T04:36:51.987 に答える