在Sencha Touch的面板中加载外部HTML文件

时间:2014-03-30 02:44:29

标签: javascript extjs sencha-touch

我正在尝试在Sencha Touch 2.3.1的面板中加载外部html文件。

在进行研究时,我发现了这个Stack Overflow帖子:How to load external html file in panel or container sencha touch 2.3

当我尝试使用那里的代码时,它失败了。

我在控制台中发现没有错误。

我试图将它发布在Sencha论坛中,但系统因为未知原因而将我退出。

我没有足够的声誉在该帖子中发表评论或在聊天中询问此事。

Pastebin:http://pastebin.com/y5Gur7yi

Ext.application({
    name: 'MyApp',
    launch: function() {
        Ext.define('MyApp.view.MyPanel', {
            extend: 'Ext.Panel',
            config: {
                id: 'MyPanel',
                itemId: 'MyPanel',
                scrollable: true,
                listeners: [
                    {
                        fn: 'onMyPanelActivate',
                        event: 'activate'
                    }
                ]
            },
            onMyPanelActivate: function(newActiveItem, container, oldActiveItem, eOpts) {
                Ext.Ajax.request({
                    url: '../test.html',
                    success : function(response) {
                        Ext.getCmp('MyPanel').setHtml(response.responseText);
                    },
                    failure : function(response) {  
                        var text = response.responseText;
                        Ext.Msg.alert('Error', text, Ext.emptyFn);
                    }
                });
            }
        });
    }
});

1 个答案:

答案 0 :(得分:1)

这是我写的一些代码来做你正在做的事情。希望这会有所帮助。

if (!detailPanel.tpl) {
        Ext.Ajax.request({
            scope: this,
            //local path of your html file
            url: '/Data/Templates/CodeStarsSummitPresenterDetail.html',
            success : function(response) {
               detailPanel.tpl = new Ext.XTemplate(response.responseText);
               detailPanel.update(datas);
            },
            failure : function(response) {
                var text = response.responseText;
                Ext.Msg.alert('Error', text, Ext.emptyFn);
            }
        });
    }
    else {
        detailPanel.update(datas);
    }