Backbone / Marionette JS:导航区域,陈

时间:2013-07-03 14:06:24

标签: marionette init nav region

我正在学习骨干/木偶js,并且我使用样板来做到这一点:https://github.com/BoilerplateMVC/Marionette-Require-Boilerplate-Lite

我创建了2个视图(欢迎/文件)和2个区域:主电源和标头。

在我的headerRegion中有我的导航栏,我想处理"活动"我的菜单类(模板:header.html)有关更改或重新加载...但我无法弄清楚最佳方法是什么

我在App.js中定义了一个Region:

App.addRegions({
        headerRegion:"header",
        mainRegion:"#main"
});

在我的控制器中,我在init上创建了一个新的HeaderView:

initialize:function (options) {
        App.headerRegion.show(new HeaderView(options));
}

这是我的HeaderView:

define([ 'marionette', 'handlebars', "App", 'text!templates/header.html'],
function (Marionette, Handlebars, App, template) {
    //ItemView provides some default rendering logic
    return Marionette.ItemView.extend({
        template:Handlebars.compile(template),
         initialize: function (options) {
          _.bindAll();
        },
        onRender : function(options){
          $('ul.nav li', this.$el).removeClass('active');
        }
    });
});

});

感谢您的帮助:)!

1 个答案:

答案 0 :(得分:0)

我在book on Marionette中所做的是使用Backbone.picky来管理哪个标头模型是活动标头模型,并在这种情况下添加适当的CSS类。您可以在此处查看相关的标题模型选择:https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/header/list/list_controller.js

当用户通过直接网址(例如书签)输入应用时,我设置了正确的有效标头(例如https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/contacts_app.js