0

過去に SHTML で行っていたように、単一ページの Windows 8 アプリを分割するための適切な解決策、または include("test.html"); を見つけることができないようです。PHPで。

default.html にすべての HTML マークアップがあります。ただし、一部のセクションを独自のファイルに移動したいと考えています。たとえば、ヘッダーを 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) コンパイル時の include メソッド

またはb)実行する前に大量のhtmlファイルをプリロードする方法(コンパイルインクルードを偽造するなど)

WinJS.UI.processAll()
WinJS.Resources.processAll();
4

2 に答える 2

2

Michael が言ったように、グリッドはこれを行いますが、Navigation Template も同様に行い、見て理解するのがずっとすっきりしています。HtmlControl の使用を検討していますが、使用できる別のコントロールがあり、それは PageControl ( WinJS.UI.Pages.PageControl ) です。使用しているHtmlControlはコントロールであり、他のすべてのコントロールとバインディングと共に処理されるため、html を処理する前に data-win-res を処理しているように聞こえます。私は試してみます:

  1. HtmlControl div だけで processAll を手動で呼び出します。processAllメソッドはルート要素を取ることができ、default.js で呼び出されますが、それが発生する前に自分で呼び出すことができます。

  2. PageControl を使用するように切り替えると、手動で呼び出すことができる render メソッドがあります。

これら 2 つの解決策のいずれかがうまくいくことを願っています。

于 2012-12-28T16:42:41.833 に答える
0

デフォルトのグリッド アプリ テンプレートは、default.html にフレームがあり、すべての子ページがそのフレームに配置される場所でこれを行います。

于 2012-12-27T20:21:02.340 に答える