0

我有一个复杂的、多级继承的应用程序,我想使用 Backbone.Router 进行导航,但它没有按我预期的那样工作。

应用程序的地址不在根目录下

像这样: http: //www.domain.com/App

我想用BB的路由

这是一些代码:

$(function () {
    var SayfaController = Backbone.Router.extend({
        routes: {
            "": "home", 
            "sayfa/:sayfaNo": "sayfa" 
        },
        initialize: function () {
          console.log('THIS WORKS');
        },
        home: function () {
           console.log('THIS DONT FIRE');
        },
        sayfa: function (sayfa) {
            console.log("NEITHER THIS FIRES");
            console.log(sayfa);
        }
    });

    var sayfaController = new SayfaController();

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

    ....
});

初始化方法有效,但是当我单击这样的链接时,事件不会触发:

<a href="http://www.domain.com/App/#/sayfa/6">Click</a>

或更改浏览器导航栏

我究竟做错了什么

4

2 回答 2

0

我不确定如何让它适用于类似的网址

http://www.domain.com/App/#/sayfa/6

但是对于下面的种类,它可以工作。

http://www.domain.com/App#sayfa/6
http://www.domain.com/App

利用

 Backbone.history.start({
            root : "/App"
        });

这是 jsfiddle http://jsfiddle.net/nEmeL/4/

于 2013-03-22T20:30:30.433 回答
0

乍一看,您似乎需要指定应用程序的根目录,因为它不是从您的域的根目录提供的。请参阅 Backbone 文档 RE:Backbone.history:

如果您的应用程序不是从您的域的根 url / 提供的,请务必告诉 History 根的真正位置,作为一个选项:Backbone.history.start({pushState: true, root: "/public/search/ "})

尝试Backbone.history.start({pushState: true, root: "/App/"});

于 2013-03-21T15:34:07.137 回答