Нокаут Durandal составить представление $root access

Я использую шаблон Hot SPA (который использует нокаут и Дюрандаль), чтобы отобразить что-то на экране. Мой 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 ответ

Как проверить ваши полные $root-значения, если все эти виды являются наблюдаемыми и ваш конвертирование в javascript не доступно внутри? Решение:

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])) 
    }
}
Другие вопросы по тегам