2012-07-16 81 views
0

我对sencha很新,可能不知道你需要什么。我试图用ajax提取HTML页面的一些内容。例如,id为“content”的div中的文本。将HTML转换为Sencha

我想把这个内容提取到面板或容器Sencha中。

这是我的观点:

Ext.define("myapp.view.Main", { 
    extend: 'Ext.tab.Panel', 

    requires: ['Ext.TitleBar'], 

    config: { 
     tabBarPosition: 'bottom', 

     items: [ 
      { 
      title: 'Welcome', 
      iconCls: 'home', 

      styleHtmlContent: true, 
      scrollable: true, 

      html: FUNCTION_TO_GET_CONTENT .join("") 
     } 
     ] 
    } 
}); 

我想知道是否有什么办法让在面板显示的HTML页面的内容,但我不知道怎么办。有人可以帮助我理解这一点,以及我如何最好地解决这个问题?

UPDATE:

基本上我想要做的就是复制这个jQuery语句的结果:

$("#mylocaldiv").load("sourcePage.html #mainDiv"); 

,然后将结果追加到标签面板html属性。

回答

3

首先,添加一个别名到您的视图(确保它是由widget.

Ext.define("myapp.view.Main", { 
    extend: 'Ext.tab.Panel', 
    alias: 'widget.Main', 
    ... 
}); 

之前然后做要么得到你的观点:

myView = Ext.Viewport.down('Main'); 

myView = Ext.ComponentQuery.query('Main'); 

现在你可以像这样访问你的项目:

myView.items.items 

而且由于您的面板是唯一的项目,它将是项目零。然后,您可以使用它的方法setHtml追加HTML:

myView.items.items[0].setHtml('your html here'); 

在加载HTML文件到面板方面,我相信煎茶删除Ext.dom.Element.load()。我将使用简单的Ajax请求,然后将结果追加到成功回调中的面板中。看到这里:load an html file into a panel

+0

太好了。谢谢爱德华! – locorecto 2012-07-20 13:55:36

+0

谢谢埃德加。我正在尝试在SenchaTouch中自己的自定义标记中构建自定义组件。我发现我可以使用上面的setHTML()方法将任何自定义标记或DOM元素设置为面板的“HTML内容”。但是: - 1)有没有在内容中嵌入变量的方法,以便在运行时用数据替换? 2)如果我的自定义组件是“容器”,是否有任何生命周期方法可以重写以控制我的子组件的呈现。 是否有任何教程,我们可以参考如何在Sencha Touch中构建自定义组件。 – 2012-08-03 11:29:09

+0

@Nikhil_Katre 1)您应该查看XTemplates(http://docs.sencha.com/touch/2-0/#!/api/Ext.XTemplate)2)您可以扩展Container,然后覆盖它的Events(http !//docs.sencha.com/touch/2-0/# /api/Ext.Container) – paz 2012-08-15 14:03:19

0

看着这个video

这将有助于您的问题,并让您更好地了解Sencha Touch。

+0

我已经观看了一段时间的视频,并复制了应用程序以及。我想我需要一个更具体的答案。 – locorecto 2012-07-17 03:42:08

1

sencha并不是构建大型应用程序的好工具,所以最好选择另一个。我尝试了它,它吸了我的时间,没有用,所有的窗口面板和更多的开发使用图像不与CSS。如果我们构建大型应用程序,我们可能会拒绝应用程序的性能。

+0

感谢您的评论,但这不是我的选择。 – locorecto 2012-07-17 13:03:35