我似乎无法找到一个很好的解决方案来拆分单页Windows 8应用程序,就像过去使用SHTML一样,或者包含(“test.html”);用PHP。
我在default.html中有所有HTML标记。但是我想将一些部分移动到自己的文件中。例如,将标头从default.html移至header.html:
// default.html
<div data-win-control="WinJS.UI.HtmlControl" data-win-options="{uri: 'html/header.html'}"></div>
// html/header.html
<header>
<h1>App Name</h1>
<h2><span data-win-res="{textContent: 'subtitle'}"></span></h2>
</header>
请注意,textContent由WinJS.Resources.processAll();翻译副标题。问题是转换未完成,因为在运行时期间包含了header.html。
总而言之,我要找的是:
a)编译时包括方法
或b)在我运行之前预先加载一堆html文件的方法(比如假的编译包括)
WinJS.UI.processAll()
WinJS.Resources.processAll();
答案 0 :(得分:2)
正如迈克尔所说,网格是这样做的,但导航模板也是如此,看起来和理解起来要清晰得多。 你正在寻找使用HtmlControl,但你可以使用另一个控件,它是PageControl(WinJS.UI.Pages.PageControl)。您正在使用的HtmlControl是一个控件,它与所有其他控件和绑定一起处理,因此它听起来像是在处理数据win-res之前执行html。 我会尝试:
仅在您的HtmlControl div上手动调用processAll。 processAll方法可以使用根元素,即使它在default.js中调用,也可以在发生之前自己调用它。
切换到使用PageControl,您可以手动调用其渲染方法。
希望这两种解决方案中的一种适合您。
答案 1 :(得分:0)
默认网格应用模板执行此操作,其中default.html具有框架,并且所有子页面都放入该框架中。