javascript - appRouter 不会在加载时触发

标签 javascript backbone.js requirejs

我正在尝试为我的主干应用程序设置路由器。但是,当我转到 localhost:8888/extractors 或 localhost:8888/extractors/new 时。没有任何控制台消息被输出。为什么它是在路由器本身中定义的?

require(['new-extractor-view', 'extractors-collection', 'backbone'], function (NewExtractorView, ExtractorsCollection) {
    'use strict';

    var extractorCollection = new ExtractorsCollection();

    new NewExtractorView({
        collection: extractorCollection
    });

    //
    // Initialize URL router
    //
    var AppRouter = Backbone.Router.extend({
        routes: {
            'extractors': 'extractorsRoute',
            'extractors/new': 'newExtractorRoute',
            '*actions': 'defaultRoute'
        }
    });

    var appRouter = new AppRouter;


    appRouter.on('route:extractorsRoute', function () {
        console.log('test1')
    });

    appRouter.on('route:newExtractorRoute', function () {
        console.log('test2')
    });


    Backbone.history.start();
});

最佳答案

如果您想使用网址的不带#,您应该初始化历史记录,例如:

Backbone.history.start({ pushState: true })

了解有关 pushState 的更多信息选项。

关于javascript - appRouter 不会在加载时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49966811/

相关文章:

javascript - 如何在 FileList 对象中设置 File 对象和 length 属性,其中文件也反射(reflect)在 FormData 对象中?

backbone.js - 在事件哈希中使用 UI 哈希键

javascript - 在调整大小时重新渲染backbone.js View ?

javascript - require.s.contexts._ 下的注册表和定义是什么?

javascript - webpack 需要的动态文件路径?

javascript - IF () 语句的令人困惑的行为

javascript - 简单的 If 语句似乎不起作用,但 JS 控制台不会记录任何错误

javascript - $scope.$watch 中的作用域变量未更新

javascript - 将 Parse Java Script SDK 与 Durandal 结合使用

javascript - 使用多个版本的 RequireJS