Backbone非默认根URL

时间:2014-03-20 17:34:25

标签: javascript backbone.js

我试图将Backbone集成到PHP CMS

我的Backbone应用的根网址是:

http://localhost/administrator/index.php?option=com_test&controller=product.list

我已经设置了这样的路由器:

var AppRouter = Backbone.Router.extend({
    routes: {
        '': 'test',
    }
});

var initialize = function () {
    var router = new AppRouter;

    router.on('test', function () {
        console.log('match');
    });

    Backbone.history.start({
        pushState: true,
        root: '/administrator/index.php?option=com_test&controller=product.list'
    });

    router.navigate('/', {trigger: true});
};

正确调用了navigate函数,但路由从不匹配。 我试图在root中添加一个尾随反斜杠,但它并没有改变任何东西。

1 个答案:

答案 0 :(得分:0)

问题是您应该将test方法添加到Router这样:

var AppRouter = Backbone.Router.extend({
  routes: {
    '': 'test',
  },
  test: function(){
    console.log('test route');
  }
});

或收听route:test事件:

router.on('route:test', function () {
    console.log('match');
});

因为Backbone.Router在与前缀route:

匹配时会触发路由名称