1

私は最近、backbone.js の使用を開始しました。多くのチュートリアルを経て、ようやく頭を使い始めました。

私が立ち往生していることの1つは、ルーティングを使用して、リストが別の残りのリクエストをプルできるようにする方法です。

コレクションに次のものがあるとします

 var NewsCollection = Backbone.Collection.extend({  
          model : News,  
          url: 'http://api.example.com/index.php/news/all/format/json',  
        });

私の理解から、私が間違っている場合は修正してくださいバックボーンは、上記のフィードから取得したすべてのデータをこのコレクションを拡張するモデルに保存します。これはすべて機能し、フィードを取得してビューに表示します

これは、ルーティング内で混乱する場所です。次のものがあります。

var NewsRouter = Backbone.Router.extend({
            routes: {
                "": "defaultRoute",
                "news/:country_code":"updatedRoute"
            },

            defaultRoute: function () {
                console.log("defaultRoute");
                var movies = new NewsCollection()
                new NewsView({ collection: movies });
                movies.fetch();
                //setInterval(function(){movies.fetch({success: function(){}});}, 60000);
            },
            updatedRoute:function (country_code) {

                //confused
                    this.movie = this.movies.get(country_code);

            }

        })

国コードの猫に基づいてニュースのリストを表示するときは、updatedRoute 関数を実行する必要があります。以下を参照してください。 http://api.example.com/index.php/news/country/gb/format/json

リスト項目がクリックされたときにフィード全体を更新して、ブラウザの URL を更新するにはどうすればよいですか。

http://localhost:8888/backbonetut/#news/gb

私のリスト項目はです。

<li><a href='#news/gb'>GB</a></li>

updateRoute 関数でそれを取得できます

this.movie = this.movies.get(country_code);

誰か助けてくれませんか

4

1 に答える 1

0

コレクションの関数をオーバーライドするか、ルーター アクションでコレクションfetchの を一時的に変更できます。url

于 2012-07-26T19:34:08.380 に答える