2016-06-10 109 views
1

我想建立微观历史与此:BackboneJS:router.navigate不是一个函数

var router = Backbone.Router.extend({ 
    routes:{"":"home",":slug":"pages"}, 
    pages:function(slug){alert(slug);}, 
    home:function(){alert('home');} 
}) ; 

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

$(document).on("click","a",function(e) { 
    e.preventDefault() ; 
    router.navigate($(this).attr('href'),true) ; 
}); 

但是控制台说:“遗漏的类型错误:router.navigate是不是一个函数”

我在那里错过了什么?

回答

4

您需要实例路由器:

var AppRouter = Backbone.Router.extend({ 
    routes:{"":"home",":slug":"pages"}, 
    pages:function(slug){alert(slug);}, 
    home:function(){alert('home');} 
}); 

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

var router = new AppRouter(); 
$(document).on("click","a",function(e) { 
    e.preventDefault() ; 
    router.navigate($(this).attr('href'),true) ; 
});