2013-02-27 43 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中。