3

我正在尝试将控制器添加到我的待办事项列表应用程序中。这是代码。

$(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,我不知道为什么。这正在停止整个应用程序的工作。

4

2 回答 2

5

它已被主干路由器取代:http: //backbonetutorials.com/what-is-a-router/

于 2012-06-23T15:34:37.477 回答
2

你有哪个主干版本?
尝试Backbone.Router代替Backbone.Controller. 来自http://backbonejs.org
的 引用:从 v5.0 开始

为了清楚起见,控制器被重命名为路由器

如果是这种情况,您可以制作参考副本,Router以免更改现有代码:

if(Backbone.Router)
    Backbone.controller = Backbone.Router;
于 2012-06-23T15:33:55.387 回答