以下のルーターを定義していますが、.route
機能が設定されていないようです。私は何を間違っていますか?助けてくれてありがとう。
# app.js.coffee
initialize: =>
router = new Backbone.Router
router.route "foo/:bar", "baz"
console.log router.routes # returns undefined
以下のルーターを定義していますが、.route
機能が設定されていないようです。私は何を間違っていますか?助けてくれてありがとう。
# app.js.coffee
initialize: =>
router = new Backbone.Router
router.route "foo/:bar", "baz"
console.log router.routes # returns undefined
使用して作成したルートRouter.route
は、オブジェクトに内部的に保存されます。コレクション History
には追加されません。Router.routes
それでも機能します。証明については、こちらを参照してください。this.routes
では、ルートのみhome
が定義されていますが、それでもルートに到達できることに注意してくださいbaz
。実際にルートが格納されている にチェックを入れると、ルートが表示されます。baz
Backbone.history.handlers
var Router = Backbone.Router.extend({
initialize: function() {
this.route("foo/:bar", "baz");
},
routes: {
"": "home"
},
home: function() {
console.log("home hit");
},
baz: function(bar) {
console.log('test hit: ' + bar);
},
});
var router = new Router();
console.log(this.routes);
console.log(Backbone.history.handlers);
Backbone.history.start();
router.navigate("foo/testbar", { trigger: true });
ただし、内部でまだ定義されていないthis
ため、コードで使用する必要があると思います。router
initialize
@route "foo/:bar", "baz"