我正在尝试将控制器添加到我的Todo列表应用程序中。这是代码。
$(function(){
alert(Backbone); // => [object]
alert(Backbone.Controller); // => undefined
TodoList.Controllers.Todos = Backbone.Controller.extend({
routes: {
"documents/:id": "edit",
"": "index",
"new": "newDoc"
},
edit: function(id){
var todo = new Todo({id:id});
todo.fetch({
success:function(model,resp){
new App.Views.Edit({model:todo});
},
error: function(){
new Error({message: "Couldn't find the todo item."});
window.location.hash = '#';
}
});
},
index: function(){
window.App = new TodoList.Views.AppView
}
});
});
正如评论中提到的,当我发出警报(Backbone)时,返回[object],而Backbone.Controller返回undefined,我无法弄清楚原因。这会阻止整个应用程序运行。
答案 0 :(得分:5)
它已被Backbone路由器取代:http://backbonetutorials.com/what-is-a-router/
答案 1 :(得分:2)
Backbone.Router
而不是Backbone.Controller
引自http://backbonejs.org:自v5.0起
为清晰起见,Controller已重命名为Router
如果是这种情况,您可以制作Router
的参考副本,以免改变现有代码:
if(Backbone.Router)
Backbone.controller = Backbone.Router;