Нокаут 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]))
}
}