Смешивание тпл и предметов в Сенча Touch 2 - PullRequest
1 голос
/ 16 ноября 2011

У меня есть подробный вид списка, который работает нормально - у него есть tpl и нет элементов.Я хотел бы добавить другие компоненты, поэтому я добавил массив элементов, но теперь TPL больше не отображается.Я попытался сохранить tpl в основной конфигурации, а также добавить его в качестве компонента безрезультатно (как данные узнают, где находится соответствующий tpl между прочим?)в любом месте на странице - то есть выше и ниже и между пунктами.Как это сделать?

Ext.define("App.view.ListDetail", {
    extend: "Ext.Container",
    record: undefined,
    config: {
        layout: 'vbox',
        style: "padding: 5px;",
        scrollable: true,
        //  tpl: ["<div>", "name<br />verified star<br />avatar pic", "</div>"].join(""), // this works fine if I have no items array


        //adding this causes above tpl to no longer render
        items: [
        {
            xtype: 'component',
            tpl: ["<div>", "name<br />verified star<br />avatar pic", "</div>"].join(""),  //this does nothing
        },
        {
            xtype: 'panel',
            //more stuff here

        },
        ] 
    }
});

1 Ответ

3 голосов
/ 13 февраля 2012

К сожалению, вы не можете смешивать конфигурации tpl и items вместе, так как они оба обновляют html компонента.

Для достижения того, что вы хотите, вам нужно добавить еще один элемент в items конфигурации, гарантируя, что вы разместите ее там, где вы хотите, а затем добавьте свою пользовательскую конфигурацию tpl в этот элемент.

Кроме того, я уверен, что вы знаете, но вам нужно использовать dataконфигурации вместе с tpl, иначе ничего не будет отображаться.

Ext.define("App.view.ListDetail", {
    extend: "Ext.Container",
    record: undefined,
    config: {
        layout: 'vbox',
        style: "padding: 5px;",
        scrollable: true,

        //adding this causes above tpl to no longer render
        items: [
            {
                xtype: 'component',
                tpl: ["<div>", "name<br />verified star<br />avatar pic", "</div>"].join("")  //this does nothing
            },
            {
                xtype: 'panel'
                //more stuff here

            },
            {
                tpl: ["<div>", "name<br />verified star<br />avatar pic", "</div>"].join("") // this works fine if I have no items array
            }
        ]
    }
});
...