我正在使用 kendoPanelBar淘汰赛-剑道绑定,我遇到了 Durandals system.acquire 方法在获取视图模型时返回淘汰赛对象的问题。这似乎只发生在我从面板事件中执行 system.aquire 时。如果我从面板外部的单击事件中运行相同的代码,一切似乎都可以正常工作。有任何想法吗?
在父视图模型中:
this.stepExpand = function (e) {
currentStep = ko.dataFor(e.item);
if (currentStep.isLoaded() != true) {
return system.acquire(currentStep.moduleId()).then(function (**module**) {
var module = new module(); <--getting the ko object here
module.activate();
currentStep.module(module);
});
}
};
父视图:
<ul data-bind="kendoPanelBar: { expandMode: 'single', widget: panel, expand: stepExpand, select: stepSelected}, foreach: steps">
<li data-bind="kendoPanelItem: {enabled: enabled}, visible: visible">
<span data-bind="text: name"></span>
<div data-bind="compose: module"></div>
</li>
----Update----
sample,
该示例直接调用 require() ,因为这就是 Durandals system.acquire 在内部所做的。每隔一段时间,示例就会正常工作,如果发生这种情况,只需点击刷新,您就会看到问题。<li>
在调试器打开的情况下单击列表中的第一个,您将看到它返回敲除而不是请求的文件。