0

他の同様の StackOverflow に関するさまざまな質問を検索しましたが、いずれも解決策を提供していないようです。次のバックボーン ルーターのセットアップがあります。

var AppRouter = Backbone.Router.extend({
routes: {
    ""           : "homeAction",
    "/portfolio" : "portfolioAction",
    "/about_us"  : "aboutUsAction",
    "/contact"   : "contactAction"
},
initialize: function  () {

},
homeAction: function () {
    alert("User has navigated home");
},
portfolioAction : function() {
    alert('user have navigated to portfolio');
},
servicesAction: function () {
    alert("User has navigated to services");
},
aboutUsAction: function () {
    alert("User has navigated to about us");
},
contactAction: function () {
    alert("User has navigated home");
},
requestQuoteAction: function () {
    alert("User has requested to submit a quote");
}
});

var app = new AppRouter();

$(function() {
    Backbone.history.start();
});

mydomain.com/# に移動すると、期待どおりに homeAction ルートが呼び出されます。しかし、mydomain.com/#/portfolio に移動しようとしても、何も起こりません。このメソッドが呼び出されない理由は何ですか?

4

1 に答える 1

1

ルートの先頭にあるスラッシュを削除するとうまくいくはずです。

var AppRouter = Backbone.Router.extend({
routes: {
    ""           : "homeAction",
    "portfolio" : "portfolioAction",
    "about_us"  : "aboutUsAction",
    "contact"   : "contactAction"
},
...

次に、たとえば mydomain.com/#portfolio にアクセスしてみてください。

于 2013-06-30T03:57:50.357 に答える