Sencha touch 2 Sencha Touch 2-从控制器到视图的传递值为;“未定义”;

Sencha touch 2 Sencha Touch 2-从控制器到视图的传递值为;“未定义”;,sencha-touch-2,Sencha Touch 2,我将视图中筛选器存储的值从控制器传递到视图。控制器中的值未定义 我的控制器: showCatQuery: function(list,index,element,record){ var catid = record.get('id'); << Value to pass this.getNavigation().push({ xtype: 'panel', title: 'A',

我将视图中筛选器存储的值从控制器传递到视图。控制器中的值未定义

我的控制器:

showCatQuery: function(list,index,element,record){
        var catid = record.get('id'); << Value to pass
        this.getNavigation().push({
            xtype: 'panel',
            title: 'A',
            scrollable: true,
            styleHtmlContent: true,
            catid: catid,
            layout: {
                type: 'fit'
            }, 
            items: [
                {
                    xtype: 'showSearchCategory',
                }
            ]
        });
    }
Ext.define('Catalog.view.showSearchCategory', {
    extend: 'Ext.navigation.View',
    xtype: 'showSearchCategory',
    requires: ['Ext.data.Store'],
    config: {

        navigationBar: false,
        items: [
            {
                title: "All Apps",
                xtype: 'list',
                // id:'Applist',
                itemTpl: new Ext.XTemplate(
                    '<img src="http://127.0.0.1:3000/system/appinfos/appicons/000/000/{id}/original/{appicon_file_name}" width="50" heigh="50" style="float:left;clear:both;"></img>',
                    '<div style="margin-left: 60px;word-wrap: break-word;width:80%;">',
                    '<span style="font-size:16px;">{name}</span><br>',
                    // '<tpl for="categories">',
                    '<span style="font-size:13px;color:#7C7C7C;" id="catname">{categoryname}</span>',
                    '</div>'
                    // '</tpl>'

                ),
                store: {
                    autoLoad: true,
                    storeId: 'allapp',
                    fields: ['id','name','created_at','appicon_file_name','categoryid','categoryname','url_ios','url_android','gallery','description'],
                    sorters: [{
                        property:'created_at',
                        direction:'DESC'
                    }],
                    proxy: {
                        type: 'jsonp',
                        url: 'http://127.0.0.1:3000/appinfos.json',
                        reader:{
                            type: 'json',
                            rootProperty:'appinfos'
                        }   
                    }
                }
            }
        ]       
    },
    initialize: function() {
        this.callParent(arguments);
        console.log(this.getCatid());
        var sto = Ext.getStore('allapp');
        sto.clearFilter();
        sto.filter('categoryid', this.config.catid);
    }


});
我输入的代码不是错误。但值是未定义的

代码哪里错了


查看完整代码:

showCatQuery: function(list,index,element,record){
        var catid = record.get('id'); << Value to pass
        this.getNavigation().push({
            xtype: 'panel',
            title: 'A',
            scrollable: true,
            styleHtmlContent: true,
            catid: catid,
            layout: {
                type: 'fit'
            }, 
            items: [
                {
                    xtype: 'showSearchCategory',
                }
            ]
        });
    }
Ext.define('Catalog.view.showSearchCategory', {
    extend: 'Ext.navigation.View',
    xtype: 'showSearchCategory',
    requires: ['Ext.data.Store'],
    config: {

        navigationBar: false,
        items: [
            {
                title: "All Apps",
                xtype: 'list',
                // id:'Applist',
                itemTpl: new Ext.XTemplate(
                    '<img src="http://127.0.0.1:3000/system/appinfos/appicons/000/000/{id}/original/{appicon_file_name}" width="50" heigh="50" style="float:left;clear:both;"></img>',
                    '<div style="margin-left: 60px;word-wrap: break-word;width:80%;">',
                    '<span style="font-size:16px;">{name}</span><br>',
                    // '<tpl for="categories">',
                    '<span style="font-size:13px;color:#7C7C7C;" id="catname">{categoryname}</span>',
                    '</div>'
                    // '</tpl>'

                ),
                store: {
                    autoLoad: true,
                    storeId: 'allapp',
                    fields: ['id','name','created_at','appicon_file_name','categoryid','categoryname','url_ios','url_android','gallery','description'],
                    sorters: [{
                        property:'created_at',
                        direction:'DESC'
                    }],
                    proxy: {
                        type: 'jsonp',
                        url: 'http://127.0.0.1:3000/appinfos.json',
                        reader:{
                            type: 'json',
                            rootProperty:'appinfos'
                        }   
                    }
                }
            }
        ]       
    },
    initialize: function() {
        this.callParent(arguments);
        console.log(this.getCatid());
        var sto = Ext.getStore('allapp');
        sto.clearFilter();
        sto.filter('categoryid', this.config.catid);
    }


});
Ext.define('Catalog.view.showSearchCategory'{
扩展:“Ext.navigation.View”,
xtype:“showSearchCategory”,
需要:['Ext.data.Store'],
配置:{
导航栏:错误,
项目:[
{
标题:“所有应用程序”,
xtype:'列表',
//id:“应用程序列表”,
itemTpl:new Ext.XTemplate(
'',
'',
“{name}
”, // '', “{categoryname}”, '' // '' ), 商店:{ 自动加载:对, storeId:'阿拉普', 字段:['id'、'name'、'created_at'、'appicon_file_name'、'categoryid'、'categoryname'、'url_ios'、'url_android'、'gallery'、'description'], 分拣机:[{ 属性:'created_at', 方向:'DESC' }], 代理:{ 键入:“jsonp”, 网址:'http://127.0.0.1:3000/appinfos.json', 读者:{ 键入:“json”, rootProperty:'appinfos' } } } } ] }, 初始化:函数(){ this.callParent(参数); log(this.getCatid()); var sto=Ext.getStore('allapp'); sto.clearFilter(); sto.filter('categoryid',this.config.catid); } });

更新

我的控制器代码:

Ext.define('Catalog.controller.Main', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {
            homepanel: 'homepanel',
            but: 'homepanel #category',
            categoryButton: 'button[action=Categories]', 
            list:'list',
            homepanellist: 'homepanel #Applist',
            navigationlist: 'navigation #Catlist',
            navigation: 'navigation'

        },
        control: {
            homepanellist:{
                itemtap: 'showApp'
            },
            categoryButton:{
                tap: 'showCat'
            },
            homepanel: {
                back: 'backButtonHandler'
            },
            navigationlist:{
                itemtap: 'showCatQuery'
            },
            navigation:{
                back: 'backButtonNav'
            }
        }
    },

    //called when the Application is launched, remove if not needed
    showApp: function(list,index,element,record) {
        Ext.getCmp('category').hide();
        // this.getBut().setHidden(true);
        var Catname = Ext.get('catname').dom.innerHTML;
        var butDown = '';
        var gal = record.get('gallery');
        var items2 = [];
        if(gal.length > 0){
            for(var i = 0; i < gal.length;i++){
                items2.push({
                    html:'<center><img style="margin-top:10px;" src="http://127.0.0.1:3000/system/gallery_apps/imgs/000/000/'+gal[i].id+'/original/'+gal[i].img_file_name+'" width="200" height="300"></center>'
                }) 
            } 
        }
        // Check OS Mobile
        if(Ext.os.name == "iOS"){
            butDown = "<div style='float:right;position: relative;top: -20px;'><a href='"+record.get('url_ios')+"'><img src='touch/resources/images/d_ios.png' style='width: 100px;float: right;margin-top: -15px;'></a></div>";
        }else{
            butDown = "<div style='float:right;position: relative;top: -20px;'><a href='"+record.get('url_android')+"'><img src='touch/resources/images/d_and.png' style='width: 100px;float: right;margin-top: -15px;'></a></div>";
        }
        // Check OS Mobile
        this.getHomepanel().push({ 

            xtype: 'panel',
            title: 'info',
            scrollable: true,
            styleHtmlContent: true,
            layout: {
                type: 'vbox'
            },
            items: [
                {
                    xtype: 'panel',
                    style: 'margin-left: -1.2em;margin-right: -1.2em;margin-top: -1.2em;',
                    height:100,
                    html: '<div style="width: 100%;height: 100px;padding: 1.2em;border-bottom:2px ridge #C5C7BC;">'+
                        '<div style="float:left;width:85px;">'+
                            '<img src="http://127.0.0.1:3000/system/appinfos/appicons/000/000/'+record.get('id')+'/original/'+record.get('appicon_file_name')+'" width="75" heigh="75"></img>'+
                        '</div>'+
                        '<div style="word-wrap: break-word;"><b><p style="font-size:15px;margin:0;">'+record.get('name')+'</p></b><p>'+Catname+'</p></div>'+
                        butDown+
                    '</div>'+
                    '<div style="clear:both;"></div>'

                },
                {
                    // xtype:'datascreen',
                    // data:record.data
                    xtype:'carousel',
                    direction: 'horizontal',
                    height:325,
                    style: 'margin-left: -1.2em;margin-right: -1.2em;background-color:#C0C0C0;box-shadow:inset 3px 3px 49px #fafafa;border-bottom:2px ridge #C5C7BC;',
                    listeners:
                    {
                        'afterrender': function(carousel) {
                            carousel.pageTurner = new Ext.util.DelayedTask(function() {
                                if (this.getActiveIndex() == this.items.length - 1) {
                                    this.setActiveItem(0, 'slide');
                                }
                                else {
                                    this.next();
                                }
                                this.pageTurner.delay(6000);
                            }, carousel);
                            carousel.pageTurner.delay(6000);
                        }
                    },
                    items: items2 
                },
                {
                    xtype: 'panel',
                    style: 'margin-left: -1.2em;margin-right: -1.2em;',
                    html: 
                    '<div style="width: 100%;padding: 1.2em;border-bottom:2px ridge #C5C7BC;">'+
                        '<h1 style="font-size:16px;font-weight:bold;color:black;">Description</h1>'+
                        '<div id="deS">'+
                            record.get('description')+
                        '</div>'+
                    '</div>'
                }
            ]
        });


    },
    backButtonHandler: function(button){
        Ext.getCmp('category').show();
    },
    backButtonNav: function(button){
        Ext.getCmp('category').hide();
    },
    showCat: function(btn){
        Ext.getCmp('category').hide();
        this.getHomepanel().push(
            {
                xtype: 'panel',
                title: 'Categories',
                scrollable: true,
                styleHtmlContent: true,
                layout: {
                    type: 'fit'
                }, 
                items: [
                    {
                        xtype: 'navigation'
                    }
                ]
            }
        );

        // this.but().setHidden(true);

    },
    showCatQuery: function(list,index,element,record){
        // var sto = Ext.getStore('myStore');
        // sto.clearFilter();
        // sto.filter('id', record.get('id'));
        // console.log(record.get('id'));
        var catid = record.get('id');
        this.getNavigation().push({
            xtype: 'panel',
            title: 'A',
            scrollable: true,
            styleHtmlContent: true,
            catid: catid,
            layout: {
                type: 'fit'
            }, 
            items: [
                {
                    xtype: 'showSearchCategory',
                }
            ]
        });
    }

});
Ext.define('Catalog.controller.Main'{
扩展:“Ext.app.Controller”,
配置:{
参考文献:{
homepanel:“homepanel”,
但是:“homepanel#category”,
categoryButton:“按钮[action=Categories]”,
列表:'list',
homepanel成员:“homepanel#Applist”,
导航列表:“导航#Catlist”,
导航:“导航”
},
控制:{
家庭小组成员:{
itemtap:“showApp”
},
类别按钮:{
点击:“showCat”
},
主页面板:{
back:“backButtonHandler”
},
导航列表:{
itemtap:“showCatQuery”
},
导航:{
back:“backButtonNav”
}
}
},
//启动应用程序时调用,如果不需要,请删除
showApp:函数(列表、索引、元素、记录){
Ext.getCmp('category').hide();
//this.getBut().setHidden(true);
var Catname=Ext.get('Catname').dom.innerHTML;
var Button=“”;
var gal=record.get('gallery');
var items2=[];
如果(加仑长度>0){
对于(变量i=0;i“+record.get('name')+”

“+Catname+”

”+ 布顿+ ''+ '' }, { //xtype:“数据屏幕”, //数据:record.data X类型:'carousel', 方向:'水平', 身高:325, 样式:“左边距:-1.2米;右边距:-1.2米;背景色:#C0C0C0C0;方框阴影:插入3px 3px 49px#fafafa;边框底部:2px脊线#C5C7BC;”, 听众: { “afterrender”:函数(旋转木马){ carousel.pageTurner=new Ext.util.DelayedTask(函数(){ if(this.getActiveIndex()==this.items.length-1){ 此.setActiveItem(0,“幻灯片”); } 否则{ 这个。下一个(); } 本.页特纳.延迟(6000); }(旋转木马); 传送带寻呼机延迟(6000); } }, 项目:项目2 }, { xtype:'面板', 样式:“左边距:-1.2米;右边距:-1.2米;”, html: ''+ “说明”+ ''+ record.get('description')+ ''+ '' } ] }); }, backButtonHandler:函数(按钮){ Ext.getCmp('category').show(); }, backButtonNav:功能(按钮){ Ext.getCmp('
Ext.define('Catalog.view.showSearchCategory', {
    extend: 'Ext.navigation.View',
    xtype: 'showSearchCategory',
    requires: ['Ext.data.Store'],
    config: {

        catid: null,

        navigationBar: false,
        items: [
            {
                title: "All Apps",
                xtype: 'list',
                // id:'Applist',
                itemTpl: new Ext.XTemplate(
                    '<img src="http://127.0.0.1:3000/system/appinfos/appicons/000/000/{id}/original/{appicon_file_name}" width="50" heigh="50" style="float:left;clear:both;"></img>',
                    '<div style="margin-left: 60px;word-wrap: break-word;width:80%;">',
                    '<span style="font-size:16px;">{name}</span><br>',
                    // '<tpl for="categories">',
                    '<span style="font-size:13px;color:#7C7C7C;" id="catname">{categoryname}</span>',
                    '</div>'
                    // '</tpl>'

                ),
                store: {
                    autoLoad: true,
                    storeId: 'allapp',
                    fields: ['id','name','created_at','appicon_file_name','categoryid','categoryname','url_ios','url_android','gallery','description'],
                    sorters: [{
                        property:'created_at',
                        direction:'DESC'
                    }],
                    proxy: {
                        type: 'jsonp',
                        url: 'http://127.0.0.1:3000/appinfos.json',
                        reader:{
                            type: 'json',
                            rootProperty:'appinfos'
                        }
                    }
                }
            }
        ]
    },
    initialize: function() {
        console.log(this.getCatid());
        var sto = Ext.getStore('allapp');
        sto.clearFilter();
        sto.filter('categoryid', this.getCatid());

        this.callParent(arguments);
    }


});
showCatQuery: function(list,index,element,record){
    var catid = record.get('id'); 
    this.getNavigation().push({
        xtype: 'panel',
        title: 'A',
        scrollable: true,
        styleHtmlContent: true,
        layout: {
           type: 'fit'
        },
        items: [
            {
                xtype: 'showSearchCategory',
                catid: catid
            }
        ]
    });
}