Knockout Durandal撰写视图$ root访问权限

时间:2013-08-08 08:03:17

标签: knockout.js viewmodel root durandal

我正在使用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>

两者都只显示数组项。

请告知我能做些什么。

1 个答案:

答案 0 :(得分: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])) 
    }
}