【发布时间】:2012-04-28 10:00:13
【问题描述】:
我使用RequireJS来组织我的Backbone应用,我的Router模块如下:
define([
'jquery',
'underscore',
'backbone',
'collections/todos',
'views/todosview'
], function($, _, Backbone, TodosCollection, TodosView){
var AppRouter = Backbone.Router.extend({
routes: {
"": "index",
"category/:name": "hashcategory"
},
initialize: function(options){
// Do something
},
index: function(){
// Do something
},
hashcategory: function(name){
// Do something
}
});
var start = function(){
p = $.ajax({
url: 'data/todolist.json',
dataType: 'json',
data: {},
success: function(data) {
var approuter = new AppRouter({data: data});
Backbone.history.start();
}
});
};
return {
start: start
};
});
我还有另一个app 模块,它使用Router.start() 来触发整个应用程序。
现在,在我的 Backbone.View 模块中,我想使用Router.navigate 来触发这个Router 模块中的路由。
我的视图模块的开始部分如下:
define([
'jquery',
'underscore',
'backbone',
'models/todo',
'views/todoview',
'text!templates/todo.html',
'router'
], function($, _, Backbone, TodoModel, TodoView, todoTemplate, Router){...
但是当我想在这个模块中使用Router 时,它总是说Router is not defined。我想做的是在此视图模块中触发某些操作时调用Router.navigate。那么我该如何实现呢?
【问题讨论】:
标签: backbone.js requirejs backbone-routing