2013-02-27 48 views
0

有沒有什麼好的方式來建立與Web-UI的飛鏢應用程序和動態加載網絡新的HTML模板(客戶端模板)?飛鏢+網絡用戶界面和動態客戶端模板

它看起來像的We​​b UI模板總是產生一起加載* .js文件:

<head> 
    <!-- this will be transformed by WebUI compiler to *_generated.js code --> 
    <link rel="components" href="common_templates.html"> 
    </head> 

回答

0

目前無法使用WebUI動態加載和處理模板。 WebUI需要提前處理模板。我認爲@ChrisBuckett從其他答案/評論中提出的建議將是一個很好的方法:在可用時使用延遲加載。

另一個瘋狂的想法是將web-ui編譯器與您的應用一起發佈,並在瀏覽器中處理模板。請注意,今天甚至不可能這樣做,因爲web-ui目前無法使用dart2js編譯(它對dart:io有一些依賴性)。假設,如果可能的話,它可能比運送額外的模板要大得多。所以,如果你的目標是減少最初的下載,那麼這個想法是不行的。

+0

是的,我想用我的應用程序使用web-ui編譯器,但你是對的 - 這真的很瘋狂:D 無論如何 - 它看起來像沒有辦法做到這一點當前實施Dart + WebUI和我接受這個答案。 – abdolence

1

我向動態加載新的內容轉換成基於頁面的內容部分的單個頁面應用程序的工作在左邊選擇菜單。內容部分從WebUi組件填充,但它確實發生了動態,並且確實發生在客戶端。在菜單上,我有類似的東西;

 <li> <a href="#/active">Active</a> </li> 
     <li> <a href="#/completed">Completed</a> </li> 

其中我有應用程序響應單擊菜單項時的散列更改。他們在ToDo應用程序的WebUi實現中執行類似的操作。

該內容具有一個條件模板,用於根據所選菜單加載WebUi組件。

這可能不是你想到的。如果我不在這裏,請提供更多詳情。

+0

對不起,但這不是我正在尋找的答案。我試圖通過適用於WebUi的HTTP_新模板動態地加載_load。它不是在一頁中加載所有模板。當然,我可以在服務器端分成許多頁面,但這需要服務器端模板。 – abdolence

+2

關於「它不是在一個頁面中加載所有模板」 - 您可能有興趣跟蹤這個bug:http://dartbug.com/3940 - 這是關於分割dart2js的輸出以允許延遲加載你的應用。不是特定於web-ui的,但會允許將應用程序更加全面地分割爲動態加載的較小部分。 –

+1

@ChrisBuckett - 謝謝!這真的很有趣。 – abdolence

0

現在可以執行Dart代碼的延遲加載。如果您的客戶端模板是作爲Dart源實現的,則可以使用DeferredLibrary類。

更詳細的文章可能很快會出現在Dart網站的articles section中。