gpt4 book ai didi

winjs - 从外部源加载 WinJS.UI.ListView 的 itemTemplate

转载 作者:行者123 更新时间:2023-12-01 14:18:06 24 4
gpt4 key购买 nike

我想知道是否有人可以阐明为什么这不起作用。

如果我在我的 html View 中定义模板(第一个场景),我可以成功地动态模板化每个 WinJS.UI.ListView 项目。但是,如果我使用 $.get 语句从单独的 html 文件加载模板,则它不起作用(第二种情况)。

self.selectTemplate = function (itemPromise) {
返回 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;)

第二种情况:

(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
});

最佳答案

我可以在代码中看到一个错误。但不确定这是否是这里唯一的问题。 promises 需要被链接起来。 winjs.ui.processAll 返回一个 promise 。

itemTemplatePromise.then(function (itemTemplateLoaded) {

var templateContainer = document.createElement("div");
templateContainer.innerHTML = itemTemplateLoaded;
templateElement = templateContainer.firstChild;

return WinJS.UI.processAll(templateElement);
}).then(function onprocessall()
{
var container = document.createElement("div");
templateElement.winControl.render(item.data, container);
return container;
});

关于winjs - 从外部源加载 WinJS.UI.ListView 的 itemTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com