Визуализация композиции Дюрандаля

Я пытаюсь воспроизвести приложение SPA с сайта Джона Папы. Я застрял при составлении представлений с помощью Durandal.

Мой код для домашнего просмотра ниже. У меня есть только один корневой уровень, как того требует Дюрандаль, поэтому я не уверен, почему мои два составных представления не отображаются. Если я уберу <h2> из data-bind, тогда все в мире будет прекрасно. Любая помощь или понимание будет принята с благодарностью.

<section> 
    <div id="intro">
        <h2 data-bind="html: displayName"></h2>
        <blockquote class="text-left">
            The electronic Cognitive Preference Estimator (e-CPE) provides insight into your preferred approach to problem solving and change management. 
            It takes just a few minutes to register and less than five minutes to complete the instrument.<br />
        </blockquote>
    </div>
<section  style="clear: both;" data-bind="compose: { view: 'bio' }"></section>
<footer data-bind="compose: { view: 'footer' }"></footer>
</section>

person JAntMan    schedule 22.09.2013    source источник
comment
Что вы на самом деле пытаетесь сделать? Составить два отдельных представления, за которыми стоят модели представления? Отображаются ли просмотры, когда вы удаляете тег h2, или что вы имеете в виду под словом «все прекрасно в мире»? Кроме того, можете ли вы показать код ваших моделей просмотра? А если у вас уже есть рут и вы вложены в тело, то зачем вы ставите туда тег футера?   -  person PW Kad    schedule 22.09.2013
comment
В первом посте я не ясно выразился. Я показываю несколько разделов на главном экране, например нижний колонтитул, биографию и страницу контактов. Чтобы код на главном экране было легче читать и управлять им, я разбил код на отдельные представления и теперь пытаюсь объединить их с помощью привязки компоновки. Приведенный выше код работает, когда нет дополнительной привязки. Однако, когда я добавляю любую привязку, которая не является привязкой компоновки, моя композиция представления не отображается. Представления, которые я пытаюсь составить, не имеют связанных моделей представлений, но есть ли разница в привязке, если они есть?   -  person JAntMan    schedule 22.09.2013


Ответы (1)


Когда вы показываете простые представления из своего HTML, вы должны иметь возможность использовать для этого модуль композиции. Если в одном из ваших подвидов есть ошибка привязки, он перестанет отображать дополнительные представления и их привязки, но вы должны увидеть это в своей консоли.

К вашему сведению, когда я просто показываю представление, привязанное к текущему контексту, я делаю это так:

<!-- ko compose: 'shell/navbar.html' --><!-- /ko -->

Где оболочка - это папка внутри папки моих представлений, а navbar.html содержит мою панель навигации.

Еще одна вещь, которую нужно убедиться, это то, что ваша модель представления shell.js предоставляет свойство displayName, которое имеет семантически правильный HTML, если таковой имеется. Также дважды проверьте, что биография и нижний колонтитул не вызывают ошибок привязки.

person PW Kad    schedule 22.09.2013