0

私のバックボーン関数では、ルーターへのIDをナビゲートしていますが、関数は呼び出されていません...同様に、リンクへの別のサンプルナビゲートURLを指定しましたが、それらは関数を呼び出していません。

mycode:

    (function($){

        var myRouter = Backbone.Router.extend({
            routes:{
                "":"defaultRoute", //onload it works
                '#/name/:id':"nameData", 
                             // i am calling this function on default Router
                '#/project/:id':"projectData"
            },
            defaultRoute:function(){
                console.log('default')
                startRoute.navigate("#/name/3"); // i am redirecting
            },
            nameData:function(id){
                console.log(id); // id not consoling not called this func.
            },
            projectData:function(project){
                console.log(project);
            }
        });


    var startRoute = new myRouter();
    Backbone.history.start();
    })(jQuery);

私のURL:http://localhost:85/router/web/#/name/3

私のhtml:

<ul class="name">
                <li><a href="#/name/1">name1</a></li>
                <li><a href="#/name/2">name2</a></li>
                <li><a href="#/name/3">name3</a></li>
                <li><a href="#/name/4">name4</a></li>
                <li><a href="#/name/5">name5</a></li>
            </ul>

誰かが私が間違っているのを見つけますこれは私がここでやっていることです..お願いします

4

1 に答える 1

0

私の機能はすべて正しいです。間違って、ルートの乳母車にハッシュを追加しました。

ここで関数を更新します:

(function($){

    var myRouter = Backbone.Router.extend({
        routes:{
            "":"defaultRoute",
            'name/:id':"nameData",
            'product/:id':"projectData"
        },
        defaultRoute:function(){
            console.log('i am default');
        },
        nameData:function(e,id){
            console.log(id);
        },
        projectData:function(project){
            console.log(project);
        }
    });

var startRoute = new myRouter();
Backbone.history.start();
})(jQuery);
于 2013-02-16T11:41:07.013 に答える