Как отдать другое представление относительно отбора счетов в расширении js4?

1) У меня есть json файл, который я хочу показать в поле зрения.

{           
    "contents": [
                {
                    "title":'JWorld',
                    "image":'image/e-learning/elearning.png',

                    "subtitle":[
                    {
                        "categories":'Aus',
                    },
                    {
                        "categories":'England',
                    }                
                    ]
                },
                {
                    "title":'JIndia',
                    "image":'image/Content/History_of_India.jpg',
                    "subtitle":[
                    {
                        "categories":'History',
                    },
                    {
                        "categories":'India palace',
                    }                
                    ]
                },
                {
                    "title":'JMaharastra',
                    "image":'image/Content/Geography.jpg',
                    "subtitle":[
                    {
                        "categories":'History Maharastra',
                    },
                    {
                        "categories":'Maharastra Heros',
                    }                
                    ]
                }
              ]
}

2) Мой файл представления:-

Ext.define('Balaee.view.kp.dnycontentcategories.ContentcategoriesView',
{
    extend:'Ext.view.View',
    id:'contentcategoriesViewId',
    alias:'widget.ContentcategoriesView',
    store:'kp.DnycontentcategoriesStore',
    config:
    {
        tpl:''+
                '<div class="main">'+
                '
'+ '{title}
'+ '
'+ '</div>'+ '', itemSelector:'div.main', } });// End of class

3) я использую группу счета и динамично добавляю счета в ней, используя json файл.

Ext.define('Balaee.view.kp.dnycontentcategories.Contentcategories',{
    extend:'Ext.tab.Panel',
    requires:[
              'Balaee.view.kp.dnycontentcategories.ContentcategoriesView','Balaee.view.kp.dnycontentcategories.ContentcategoriesView1'
             ],
    id:'contentcategoriesId',
    alias:'widget.Contentcategories',
    height:500,
    items:[

    ],//end of items square
});// End of login class

4) Мой магазин file:-

Ext.define('Balaee.store.kp.DnycontentcategoriesStore',{
    extend: 'Ext.data.Store',
    model: 'Balaee.model.kp.DnycontentcategoriesModel',
    autoLoad:true,
//    filters: [{
//        property: 'title',
//    }],
    proxy:
    {
        type:'ajax',
        api:
        {
            read:'data/content.json',
            //create: ,
            //update: ,
            //destroy: ,
        },//End of api 
        reader:
        {
            type:'json',
            root:'contents',
            //successProperty: ,
        }//End of reader
    }//End of proxy
});//End 

5) Мой файл Диспетчера некоторый код здесь я динамично добавляю некоторые счета от json файла. И выбирая конкретный счет я хочу различные конкретные ценности от json файла. Но я получаю то же самое представление о первом счете. Как я могу решить эту проблему.

init: function(){
    console.log("inside content controller");
    this.control({
        'Contentcategories':
        {
            render:this.renderFunction,
        }
    });//End of control
},//End of init() function
renderFunction:function(){
    console.log("Inside render function");
    var tabPanel = Ext.getCmp('contentcategoriesId');      //tabpanel  
    var tabPanelView = Ext.getCmp('contentcategoriesViewId');  //tabpanel view

    var storeObject= this.getStore('kp.DnycontentcategoriesStore');//store
    storeObject.on('load',function(){
        storeObject.each(function(model){
            //tabPanelView.store().filter('title',model.get('title')),
            console.log(model.get('title'));
            console.log(model.get('categories'));
            tabPanel.add({title:model.get('title'),
                            id:model.get('title'),
                            //html:"",
                            xtype:'ContentcategoriesView',              
                        }); //End of add function 
        });// End of storeObject function
        tabPanel.setActiveTab(0);
    });
},// End of render function 

пожалуйста, дайте мне некоторое предложение.

0
добавлено
Просмотры: 2
nl ja de
Нет. Кодирование работает, но оно показывает то же самое представление когда я chaging счет.
добавлено автор Pravin Mane, источник
Да вы правы. Но я хочу сгруппировать данные в json файле в diiferent счете. Как я могу сделать это?
добавлено автор Pravin Mane, источник
вы получаете какую-либо ошибку?
добавлено автор Avinash T., источник
Я думаю, это происходит, потому что вы передали общий kp. DnycontentcategoriesStore к каждому ContentcategoriesView
добавлено автор Avinash T., источник

1 ответы

Есть несколько проблем с вашим кодом.

Вы определяете ContentcategoriesView - это - компонент, который вы расширили; но вы даете ему id ( contentcategoriesId ) все же, вы создаете больше чем один из этих компонентов - это не имеет никакого смысла, поскольку id должен быть уникальным за составляющий случай.

Затем вы прилагаете магазин к этому представлению, что означает, что все компоненты отдадут то же самое.

Если я понимаю правильно, что вы хотите, чтобы каждый вход в вашем json стал различным счетом.

Я взял бы это направление (код, не проверенный, но должен дать вам направление):

Ext.define('Balaee.view.kp.dnycontentcategories.ContentcategoriesView',
{
    extend:'Ext.panel.Panel',//Notice it's a panel.
    alias:'widget.ContentcategoriesView',

    config:
    {
        tpl: '<div class="main">' +
             '
' + '{title}
' + '
' + '</div>' itemSelector:'div.main', } });

И затем:

storeObject.on( 'load',function() {
    storeObject.each( function( model ) {
        tabPanel.add({
            xtype: 'ContentcategoriesView',
            title: model.get( 'title' ),
            id:    model.get( 'title' ),
            data:  model
        }); 
    });
    tabPanel.setActiveTab(0);
});
0
добавлено
благодарит, дают мне предложение. Я работал в вашем направлении. Я изменил свой код, но он не показывает изображения в представлении, когда я изменяю счет. Я получаю запрещенное сообщение на пульте->>/Balaee/height = % 2250%22 403 (Запрещенный)
добавлено автор Pravin Mane, источник
Ваш img путь правилен? Это относительно вашего index.html...
добавлено автор Izhaki, источник