私は kendoPanelBarノックアウト-剣道バインディングを使用していますが、ビューモデルを取得するときにノックアウト オブジェクトを返すデュランダルの system.acquire メソッドに問題があります。これは、パネル イベント内から system.aquire を実行した場合にのみ発生するようです。パネル外のクリックイベントから同じコードを実行すると、すべてうまくいくようです。何か案は?
ParentViewModel で:
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>
----更新----
sample、
サンプルは require() を直接呼び出します。これは、Durandals の system.acquire が内部で行っていたことだからです。サンプルが正常に動作する場合は、更新を押すだけで問題が表示されます。デバッガを開いた状態でリストの最初のものをクリックする<li>
と、要求されたファイルの代わりにノックアウトが返されることがわかります。