Получить глобальную переменную App. Webpack 2 - Marionette

269
25 апреля 2017, 08:16

Хочу получить доступ к переменной app. Как это сделать?

app.js

'use strict';
import $ from 'jquery';
import Application from './application';

const App = new Application();

    /**
    * Конфигурация Ajax по умолчанию.
    */
    $.ajaxSetup({
        cache: false,
        contentType: 'application/json',
        dataType: 'json',
        statusCode: {}
    });
    exports.app = App;

    /**
    * Аутентификация пользователя и старт приложения.
    */
    App.session.checkAuth({
        complete: function() {
            App.start();
        }
    });

Импортирую Application.Martionette.

Экспортирую это приложение как app.

Application.Marionette object

'use strict';
import Backbone from 'backbone';
import $ from 'jquery';
import {Application} from 'marionette';
import SessionModel from 'models/sessionModel';
import Router from './router';
import RouterController from './routerController';
export default Application.extend({

    channelName: 'app',
    region: '#main-content',

    /**
     * Инициализация приложения.
     */
    initialize: function() {
        this.session = new SessionModel();
    },
    /** 
     * Старт приложения
     */
    onStart: function() {
        this.router = new Router({ controller: new RouterController() 
        Backbone.history.start();
    },
});

Как видно выше, при старте приложения я регистрирую роуты. В главном роуте homeController я хочу получить данные о сессии пользователя. То есть: app.session ... Как я могу получить доступ к app как к переменнной?

Использую webpack 2.

elixir(function(mix) {
    mix.less('index.less').less('app.less');
    mix.webpack(['src/app.js'], {
        output: {
            path            : '/public',
            publicPath      : '/js/',
            filename        : '[name].js'
        },
        module: {
            loaders: [
                {   // babel загрузчик. Преобразую из es6 в es5 для старых браузеров.
                    test: /\.js$/,
                    exclude: /(node_modules|bower_components)/,
                    // babel?optional[]=runtime
                    loader: 'babel', // 'babel-loader' is also a valid name to reference
                    query: {
                        presets: ['es2015']
                    }
                },
                {
                    test: /\.hbs/,
                    loader: "handlebars-template-loader"
                },
            ]
        },
        resolve: {
            modulesDirectories: ['node_modules'],
            extensions: ['', '.js'],
            alias: {
                'marionette'            : 'backbone.marionette',
                'underscore'            : 'lodash',
                'module-exports'        : '',
                'backbone.wreqr'        : path.resolve(nodeModulesPath, 'backbone.marionette', 'node_modules', 'backbone.wreqr'),
                'backbone.babysitter'   : path.resolve(nodeModulesPath, 'backbone.marionette', 'node_modules', 'backbone.babysitter'),
                'backbone'              : 'backbone',
                'handlebars'            : 'handlebars/runtime.js',
                'src'               : path.resolve(srcPath),
                'models'            : path.resolve(srcPath, 'models'),
                'controllers'       : path.resolve(srcPath, 'controllers'),
                'modules'           : path.resolve(srcPath, 'modules'),
                'helpers'           : path.resolve(srcPath, 'helpers'),
                'views'             : path.resolve(srcPath, 'resources', 'views'),
                'templates'         : path.resolve(srcPath, 'resources', 'templates'),
            }
        },
    });
    mix.version(['js/main.js', 'css/index.css', 'css/app.css']);
});
READ ALSO
Обновление переменной во view

Обновление переменной во view

Господа, доброго времениНачал делать приложение на asp

208
“Парсинг” блока с поддомена

“Парсинг” блока с поддомена

ЗдравствуйтеЕсть два сайта: на основном домене и на поддомене

244
Ошибка Cannot read property при работе с GMail API

Ошибка Cannot read property при работе с GMail API

Не получается работать с GMail APIКаждый раз GMail не может быть прочитано и является пустым свойством

268
Gulp не компилирует шаблон Panini

Gulp не компилирует шаблон Panini

В проекте используется gulpВ gulpfile

270