Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在sencha touch中移动到另一个视图_Javascript_Extjs_Sencha Touch - Fatal编程技术网

Javascript 在sencha touch中移动到另一个视图

Javascript 在sencha touch中移动到另一个视图,javascript,extjs,sencha-touch,Javascript,Extjs,Sencha Touch,我没有在视图中编写所有组件,而是在视图中提供了一个指向HTML文件的链接,如下所示。我在panelActivate()上调用了sample.html 因此,在本例中,sample.html中有一个按钮,我想为该按钮编写click事件,以便从一个视图切换到另一个视图。那我怎么做呢?我认为这种方法行不通 Ext.define('myapp.view.Main', { extend: 'Ext.Panel', xtype: 'main', requires: [

我没有在视图中编写所有组件,而是在视图中提供了一个指向HTML文件的链接,如下所示。我在panelActivate()上调用了sample.html

因此,在本例中,sample.html中有一个按钮,我想为该按钮编写click事件,以便从一个视图切换到另一个视图。那我怎么做呢?我认为这种方法行不通

Ext.define('myapp.view.Main', {
    extend: 'Ext.Panel',
    xtype: 'main',
    requires: [
        'Ext.TitleBar',
        'Ext.Video',
        'Ext.Ajax'
    ],
    config: {
        tabBarPosition: 'bottom',
        id            : 'MyPanel',
        itemId        : 'MyPanel',
        scrollable    :  true,
        listeners: [
        {
            fn: 'onMyPanelActivate',
            event: 'activate'
        }
    ],    

        items: [
            {
                title: '<div class="small_logo"></div>',

                styleHtmlContent: true,
                scrollable: true,

                html: [


                ].join("")
            }

        ]
    },

      onMyPanelActivate: function(newActiveItem, container, oldActiveItem, eOpts) {
        Ext.Ajax.request({

        scriptTag:true,
        url: ' resources/html/sample.html',
        success : function(response) {
           Ext.getCmp('MyPanel').setHtml(response.responseText);

        },
        failure : function(response) {  
            var text = response.responseText;
            Ext.Msg.alert('Error', text, Ext.emptyFn);            }
    });
Ext.define('myapp.view.Main'{
扩展:“Ext.Panel”,
xtype:'main',
要求:[
“外部标题栏”,
“外部视频”,
“Ext.Ajax”
],
配置:{
tabBarPosition:'底部',
id:“MyPanel”,
itemId:“MyPanel”,
可滚动:对,
听众:[
{
fn:“安美帕那酯”,
事件:“激活”
}
],    
项目:[
{
标题:“”,
styleHtmlContent:对,
可滚动:对,
html:[
].join(“”)
}
]
},
onMyPanelActivate:函数(newActiveItem、容器、oldActiveItem、eOpts){
Ext.Ajax.request({
scriptTag:true,
url:'resources/html/sample.html',
成功:功能(响应){
Ext.getCmp('MyPanel').setHtml(response.responseText);
},
失败:函数(响应){
var text=response.responseText;
Ext.Msg.alert('Error',text,Ext.emptyFn);}
});
}
});

它错误地使用了框架,但是可以使用jquery和编写click事件来完成
关于onMyPanelActivate的成功。

我的拙见是,你简直是在强奸这个框架。如果要查找组件分离/重用,请使用Ext.define()定义自定义按钮,为其指定一个xtype,并将其包含在父视图中。另外,您能否向我们展示
sample.html
的内容,以帮助我们了解您正在尝试做什么?因此,在这种情况下是不可能的?我不确定我是否了解您正在尝试做什么,请发布
sample.html
的内容以帮助我们了解,我可以肯定的是,没有理由使用本地Ajax来分离Sencha Touch应用程序中的代码。我的HTML文件很简单,包含一些按钮和图像。在下一页中,我有一些关于被点击按钮的描述,没有其他内容。那么,我现在是否必须将完整的HTML更改为sencha组件?