ampersand.js переключатели нескольких представлений

Я пытаюсь понять, как использовать несколько переключателей вида, чтобы у меня были разные анимационные переходы.

В моем представлении Main.js я могу использовать ampersand-view-switcher для вызова модели, которая выполняет анимацию перехода моей страницы на "show" + "hide", и они прикреплены к моей навигации.

render: function () {
    // some additional stuff we want to add to the document head
    document.head.appendChild(domify(templates.head()));

    var anim = new Anim();

    // main renderer
    this.renderWithTemplate({me: me});

    // init and configure our page switcher
    this.pageSwitcher = new ViewSwitcher(this.queryByHook('page-container'), {

        waitForRemove: true,

        show: function (newView) {
            // it's inserted and rendered for me
            document.title = _.result(newView, 'pageTitle') || 'cmdv portfolio';

            // add a class specifying it's active
            anim.fadeElIn(newView.el);
            anim.navUp();

            // store an additional reference, just because
            app.currentPage = newView;

        },

        hide: function (oldView, newView, cb) {

            anim.fadeElOut(oldView.el);
            anim.navDown();

            setTimeout(cb, 400);

        }
    });

    // setting a favicon for fun (note, it's dynamic)
    setFavicon('/images/ampersand.png');
    return this;
},

Теперь я пытаюсь использовать другой переключатель на определенной странице. Эта страница будет действовать как галерея, и при нажатии на элемент вы попадете на другую страницу, но с другой анимацией переключения режимов просмотра.

У кого-нибудь есть указания относительно того, как это можно сделать.

Ampersand - действительно отличный инструмент, но он не может найти ничего в документах и ​​чате, который у них есть, не приспособлен для ответов на вопросы новичков.

1 ответ

Я думаю, что следующее должно ответить на ваш вопрос. Когда вы создаете новый View Switcher, первый аргумент - это элемент, внутри которого будут отображаться ваши переключенные представления (это this.queryByHook('page-container') в твоем случае. Допустим, у вас есть какое-то другое представление (например, одно из представлений, отображаемых с помощью ViewSwitcher), и вы хотите, чтобы у этого представления был другой переключатель представлений. Затем вы должны сделать то же самое, как показано выше: внутри render Функция, которую вы создаете новый переключатель вида, который вы присоединяете к другому элементу. Например, если по вашему мнению у вас есть div с data-hook="another-view-switcher"вы бы сделали:

this.pageSwitcher = new ViewSwitcher(this.queryByHook('another-view-switcher'), {//and so on

Я знаю, что это старый вопрос, но ответит ли мое объяснение на него?

Другие вопросы по тегам