0

我似乎找不到像过去使用 SHTML 或 include("test.html"); 那样拆分单页 Windows 8 应用程序的好解决方案。在 PHP 中。

我在 default.html 中有所有 HTML 标记。但是我希望将某些部分移动到自己的文件中。例如,将 header 从 default.html 移动到 aa 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();
4

2 回答 2

2

正如 Michael 所说,网格可以做到这一点,但导航模板也可以做到这一点,而且看起来和理解起来要干净得多。您正在考虑使用 HtmlControl,但您可以使用另一个控件,它是 PageControl ( WinJS.UI.Pages.PageControl )。您正在使用的HtmlControl是一个控件,它与所有其他控件和绑定一起处理,因此听起来它在处理 html 之前正在处理 data-win-res。我会尝试:

  1. 仅在您的 HtmlControl div 上手动调用 processAll。processAll方法可以采用根元素,即使在 default.js 中调用了它,您也可以在此之前自己调用它。

  2. 切换到使用 PageControl,您可以手动调用它的渲染方法。

希望这两种解决方案中的一种对您有用。

于 2012-12-28T16:42:41.833 回答
0

默认网格应用程序模板执行此操作,其中 default.html 有一个框架,所有子页面都放入其中。

于 2012-12-27T20:21:02.340 回答