ヒットした URL に応じて、対応するコントロールが設定されるように、CanJS でルーティングを設定したいと考えています。私の問題は、コントロールでリッスンするデフォルトルートを表現する方法を見つけようとしていることです:「一致するものがない場合は、これを実行してください」. これを行うためのヒントはありますか?
これはこれまでの私のコードです。/#!/plant/1/day/3
andのような URLでは機能するようですが、 or/#!/plant/1
では機能しないようです/#!
/
can.route('plant/:plant_id/day/:day', {});
can.route('plant/:plant_id', {});
can.route('', {});
var Router = can.Control({}, {
init : function () {},
"{can.route}" : function (route, event, newVal, oldVal) {
console.log('Init default control');
},
"{can.route} plant_id" : function (route, event, newVal, oldVal) {
console.log('Init plant control');
},
"{can.route} day" : function (route, event, newVal, oldVal) {
console.log('Init day control');
}
});
PS私は実際にこれを行うことでCan.Control.routeプラグインを使用してそれを行うことができました:
"route" : function (route, event, newVal, oldVal) {
console.log('route Default route', arguments);
}
しかし、ルート プラグインはルートの設定とルートへの反応の両方を行っているようで、特定のプラグインを使わずにこれを行う方法を知りたいと思っていました。