0

インフューザーがテンプレートを読み込んで監視可能なテンプレートに設定しているのを見ることができますが、レンダリングは行われません。「読み込み中」と表示されるだけですが、afterRender メソッドを呼び出します。テンプレートは次のようになります

<button>Refresh</button>
<nav>
  <ul data-bind='template:externalTemplate,foreach:DataArray,afterRender:callMe'></ul>
</nav>

テンプレートが読み込まれると、配列にはすでに観察可能なオブジェクトがほとんどありません。しかし、レンダリングされません。ただし、更新ボタンをクリックして、アレイをクリーンアップしてリロードすると、それは大丈夫です。

これは ko 2.2.0 と jquery 1.8 で問題なく動作していました... この更新で KoExternalTemplate は壊れていますか?

編集:再現手順:

  1. HotTowel SPA テンプレートを使用して新しいプロジェクトを開始します (このテンプレートをまだお持ちでない場合は、Google で検索してください)。
  2. NuGet 経由で koExternalTemplate を追加します。これにより、交通警官とインフィザーもインストールされます。
  3. BundleConfig.cs を更新して、TrafficCop、infuser、および koExternalTemplate を追加します。
  4. プロジェクトのルートの下にフォルダ名 Templates を作成し、テンプレート ファイルを追加します。テンプレートとファイルパターンを指すようにインフューザー構成でメインjsを更新します(koExternalTemplateのビットを知っている場合は、私が話していることを知っています)。
  5. テンプレートを home/details html に含めて、アプリを起動します。

結果: テンプレートの代わりに「読み込み中...」と表示されるだけで、テンプレートはレンダリングされません。

4

1 に答える 1

1

Dhana – 最良のオプションはcompose、そのビューでデュランダルのバインディングを使用することです。このような:

<div data-bind="compose: { view: 'templates/_sample.tmpl.html', activate: true }">      
</div>

そして、templates foler を views フォルダー (convention) の下に移動します。

于 2013-02-25T20:18:09.197 に答える