LINUX.ORG.RU

Backbone.js. Router is not a function.

 , , , ,


0

1

Всем привет!

Об.ясните, почему, я из view немогу заюзать объявленный в другом модуле роутер.

есть router: js/routers/router.js

define( ['jquery', 'backbone', 'app/js/views/index'], function($, Backbone, IndexView) {

        var Router = Backbone.Router.extend({
                routes: {
                        "": "index",
                },

                index: function() {
                        var index_view = new IndexView();
                        index_view.render();
                },
        });

        return Router;
});

Есть js/views/index.js. Тут мне нужно заюзать функцию navigate роутера. Но болт - Router is not a function!

define(
        [
                'underscore', 'jquery', 'backbone',  '../collections/my', '../routers/router',
        ],
        function (_, $, Backbone, MyCollection, Router) {
        'use strict';
                        
        var IndexView = Backbone.View.extend({
                ...
                render: function () {
                     var router = new Router();
                     router.navigate("projects", {trigger: true});
                }
        });

        return IndexView;


Ответ на: комментарий от Sektor

Вопрос - почему он undefined?

Очевидно DI не срабатывает. Опять же, ЯХЗ в этом бэкбоне, но у меня два вопроса: первое, почему routers/router, а не routers/router.js и второе, а что оно само должно грузится?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

.js подставляется автоматически и да оно само должно подгружать модуль Router. Дело в том, что корректно подгружаются все модули - коллеции, модели, а роутер - нет(.

Sektor
() автор топика

Что-то я тупанул(! Вюха отрабатывается раньше экспорта роутера.

Sektor
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.