Как сделать вложенные вкладки (вложенные вкладки), используя магистральный контроллер и представления?

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

Все работает нормально, но я не понимаю, как загружать дополнительные вкладки на основной вкладке. Мой главный вопрос: где мне запустить контроллер для дополнительных вкладок? Это из метода инициализации контроллера главной вкладки?

Обзор кода: - Главный контроллер загружает коллекцию и модели для каждой вкладки - Главный контроллер показывает вид каждой вкладки при нажатии на основную вкладку

// Declare pages collection
var mainpages = new TST.Collections.Pages([ new SCL.Models.Page({
    id : 1,
    name : "Main Tab1",
    route : "!/tab1",
    _controller : TST.Controllers.Tab1
}), new SCL.Models.Page({
    id : 2,
    name : "Main Tab2",
    route : "!/tab2",
    _controller : TST.Controllers.Tab2
}) ], {
    current : 1
});

// show the main layout
var layout = new TST.Layouts.Main({
    collection : mainpages
});
this.options.region.show(layout);

// show the menu
var menu = new TST.Views.Nav({
    collection : mainpages
});
layout.menu.show(menu);

Регионы объявлены в основном макете. И показывает каждую вкладку при нажатии на вкладку, используя -> self.content.show(options.view, self.options.collection.goRight); где я = это

Контроллеры каждой вкладки выглядят так

SCL.Routers.Tab1= Backbone.Marionette.AppRouter.extend({
    appRoutes : {
        "!/request" : "start"
    }
});

  SCL.Controllers.Tab1= TST.Framework.Controller.extend({
    initialize : function(options) {
        this.layout = new TST.Layouts.Tab1();
        this.router = new TST.Routers.Tab1({
            controller : this
        });
    },

    start : function() {
        app.vent.trigger("page:change", {
            view : this.layout
        });
    }
});

Итак, как я могу загрузить дополнительные вкладки под Tab1 ??

Пожалуйста, поделитесь своими идеями и помогите мне... Заранее спасибо!


person Saidh    schedule 02.01.2013    source источник
comment
Я не совсем уверен, в чем заключается ваш вопрос: как я могу загрузить дополнительные вкладки под Tab1 ?? может означать много разных вещей. Это может означать, как добавить элементы DOM вложенной вкладки к элементу DOM основной вкладки? или как добавить элементы DOM вложенной вкладки на страницу таким образом, чтобы они отображались под элементом DOM вкладки? или Как мне спроектировать свои представления для моей вкладки/вложенных вкладок, или... вы поняли идею. Пожалуйста, сформулируйте свой вопрос как можно более конкретно, так нам будет легче ответить на него.   -  person machineghost    schedule 04.01.2013
comment
Я не могу понять точную разницу между вашим 1-м и 2-м вопросом, но я думаю, что настоящий вопрос - 2-й. Т.е. в моем случае под основной вкладкой Tab1 есть еще какие-то вкладки. Поэтому, когда мы перешли на вкладку Tab1, нам нужно видеть меню вложенных вкладок и видеть их содержимое при нажатии на каждую вложенную вкладку.   -  person Saidh    schedule 11.01.2013


Ответы (1)


Основано на оригинальной статье Дерика Бейли (http://lostechies.com/derickbailey/2012/04/05/composite-views-tree-structures-tables-and-more/), я написал сообщение в блоге о похожей проблеме здесь: http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/

Вы должны быть в состоянии применить содержимое сообщения в блоге для решения своей собственной задачи, поскольку оно очень похоже по своей природе.

person David Sulc    schedule 04.06.2013