2013-03-21 111 views
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> 

或更改浏览器的导航栏

我在做什么错

+0

与你的链接出现404错误给应用 – kinakuta 2013-03-21 15:19:15

+0

@kinakuta这是一个例子:) www.domain.com是不是我的:) – Lupus 2013-03-21 15:22:04

+0

是'编辑器'的初始页面?如果索引页面是“http:// www.matbuu.bizim /”,那么当运行这个URL被访问时,home将运行。当'http:// www.matbuu.bizim#sayfa/123'时会运行'sayfa'。除非你在使用## – ashley 2013-03-21 15:22:23

回答

0

你需要一个初始化函数?这可能会取代路由器的主干设置,这可能是为什么其他功能/视图未触发。

+0

我不认为会崩溃的骨干,但我试过...没有变化 – Lupus 2013-03-21 15:32:14

0

从一眼,看起来您需要指定应用程序的根目录,因为它不是从您的域的根目录提供的。见骨干文档RE:Backbone.history:

如果您的申请不被从根网址服务/您的 域的,一定要告诉历史根源在哪里还真是,作为一个 选项:骨干。 history.start({pushState的:真实,根: “/公/搜索/”})

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

+0

nop ...我之前尝试过。不用找了。 – Lupus 2013-03-21 15:47:52

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/