2012-07-16 79 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