在html更改后尝试更新Sencha Touch扩展面板

时间:2011-10-31 17:51:25

标签: sencha-touch extjs4

我从webdb中提取一些数据,将其转换为html并希望将其绑定到扩展xtype的html属性:

App.views.Homecard = Ext.extend(Ext.TabPanel, {
title: "Home",
iconCls: "home",
defaults: {
    styleHtmlContent: true
},
items: [{
        title: 'TabPanels',
        scroll: 'vertical', 
        html: getPresentations
        },
        {
        title: 'Toolbars',
        scroll: 'vertical', 
        html: '<p>Toolbars can be used as a title bar or as a '
        }],

});

查看'html:returnHTML' - 这个变量是在webdb回调中构建的。我想在完成该字符串后调用此页面上的刷新或更新..有人可以帮助我如何?

谢谢! 托德

1 个答案:

答案 0 :(得分:2)

首先获取对象对象的引用。您可以通过多种方式执行此操作,具体取决于您获取differentHTML对象的位置。假设您修改了这样的代码,这样您就可以通过id获取项目对象。

{
id: 'parent'
title: "Home",
iconCls: "home",
defaults: {
    styleHtmlContent: true
}

然后使用以下代码来获取需要更改HTML的项目。之后调用doLayoutdoComponentLayout(),因为不同的HTML可能占用不同的空间。

var item = Ext.getCmp('parent').items.items[0];
     item.update(differentHTML);
     item.doLayout();
     Ext.getCmp('parent').doComponentLayout();

请注意,这是一种黑客行为。通常我要做的是首先定义一个模型来保存你从webdb获得的数据。然后有一个控制器,它将通过应用到模板来更新HTML。这样,您可以更轻松地获得对项目的引用,而无需id。您还可以通过将格式代码与实际数据分开来维护更清晰的代码。 您可以使用以下视频开始了解详情:http://www.sencha.com/learn/xtemplates-part-i/

实例http://jsfiddle.net/p5K4q/34/