2

我正在使用 Hot SPA 模板(使用淘汰赛和 durandal)在屏幕上显示某些内容。我的 html 代码变得很长,所以我试图将它拆分成更小的可重用组件。

代码呈现查找并显示我期望的所有内容。但我似乎失去了主视图模型的句柄

从我的主要观点来看,我试图

<!-- ko if: A -->
<!--ko compose: { model: $data, view: '../tmpl/A'} -->
<!--/ko-->
<!--/ko-->

在我的 tmpl/A.html 文件中,我有以下内容:

         <!-- ko foreach: array -->
            <!--ko compose: { model: $data, view: '../tmpl/tmpl1'} -->
            <!--/ko-->
            <!--/ko-->

现在从 /tmpl/tmpl1 我试图将一个按钮绑定到我的模型做一些事情

它什么都不做。从 /tmpl/tmpl1 内部看来,我只能看到数组项。我试图打印出来

<div data-bind="text: ko.toJSON($data)"></div>
<div data-bind="text: ko.toJSON($root)"></div>

两者都只显示数组项。

请告知我能做什么。

4

1 回答 1

0

如果所有这些类型都是可观察的并且您的 javascript 转换无法在内部访问,如何检查您的完整 $root 值?解决方案:

for (var element in ko.contextFor($0).$root) {
    if (ko.contextFor($0).$root.hasOwnProperty(element)) {
        console.info(element + ": ") 
        console.info(ko.toJS(ko.contextFor($0).$root[element])) 
    }
}
于 2018-11-28T11:59:27.680 回答