私は RequireJS を使用してバックボーン アプリを整理しています。私のルーター モジュールは次のとおりです。
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
に使用する別のモジュールがあります。ここで、Backbone.View モジュールで、このモジュールでルートをトリガーするRouter.start()
ために使用したいと考えています。私の 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
、この View モジュールで何らかのアクションが発生したときに呼び出すことです。では、どうすればこれを達成できますか?