なぜこれがうまくいかないのか、誰かが光を当てることができるかどうか疑問に思っています。
HTML ビュー (最初のシナリオ) でテンプレートを定義すると、各 WinJS.UI.ListView アイテムを動的にテンプレート化できます。ただし、 $.get ステートメントを使用して別の html ファイルからテンプレートをロードすると、機能しません (2 番目のシナリオ)。
self.selectTemplate = function (itemPromise) {
return itemPromise.then(function (item) { ...
最初のシナリオ:
(var itemTemplate = document.getElementById(item.data.controlType + "ItemTemplate");
var container = document.createElement("div");
itemTemplate.winControl.render(item.data, container);
return container;)
2 番目のシナリオ:
(var itemTemplatePromise = ko.bindingHandlers.searchPropertyBuilder.loadTemplate(item.data.controlType);
itemTemplatePromise.done(function (itemTemplateLoaded) {
var templateContainer = document.createElement("div");
templateContainer.innerHTML = itemTemplateLoaded;
templateElement = templateContainer.firstChild;
WinJS.UI.process(templateElement);
var container = document.createElement("div");
templateElement.winControl.render(item.data, container);
return container;
});)
}
WinJS.Utilities.markSupportedForProcessing(self.selectTemplate);
WinJS.Namespace.define("TemplateSelector", {
template: self.selectTemplate
});