以下のルーターを定義していますが、.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。実際にルートが格納されている にチェックを入れると、ルートが表示されます。bazBackbone.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ため、コードで使用する必要があると思います。routerinitialize
@route "foo/:bar", "baz"