我想使用路由导航但我有错误。
(function(){
window.App = {
Models: {},
Collections: {},
Views: {},
Routers: {}
};
App.Router = Backbone.Router.extend({
routes: {
"/case-projet/:projet": "caseProjet"
},
showPage: function(page){
//hide all pages
this.hidePages();
//show passed page by selector
$(page).show();
},
caseProjet: function (e) {
this.showPage('div#partech-introduction');
}
});
new App.Router;
Backbone.history.start();
App.Views.Incentive = Backbone.View.extend({
el: $("#projet-page"),
caseStudyContainer: $("#projet-page"),
caseStudyElem: $('section[data-projet-page="Incentive"]'),
initialize: function () {
$("#Incentive a.OpenProject").on("click", this.enterProjectAnim)
},
enterProjectAnim: function () {
var e = this;
App.Router.navigate("/case-projet/Incentive", {trigger: true})
, $("#homepage").css("display", "none")
, e.caseStudyElem.css({ display: "block" })
, $("#partech-introduction").addClass("active")
}
});
})();
在Chrome开发工具中:
Uncaught TypeError:Object function(){return parent.apply(this,arguments);没有方法'导航'
我尝试了Backbone Router has no method navigate的回复,但这不起作用。
为什么我有这个错误?
Tks:)
答案 0 :(得分:0)
将来电App.Router.navigate(...)
更改为Backbone.history.navigate(...)
。
或者,您可以将变量设置为您创建的new App.Router()
实例,然后在该实例上调用navigate
函数。您的代码试图在类定义上调用navigate
;你需要一个类的实例。