1

私はバックボーンを初めて使用し、レールアプリケーションでバックボーンを使用しています。これは私がアプリケーションで行っていることです

アプリケーションでのページネーション サポートに Backbone Paginator を使用し、gmaps で場所をレンダリングするために Gmaps を使用しています。サーバーから 5 つのレコードをページネーションで表示し、対応する 5 つの場所をマップ ビューに表示するたびに、ページ付けされたリンク (前のページ、次のページ) をクリックしたときにマップ上の残りの場所、クリック イベントを記述する必要があると思いますが、このイベントをどこにどのように記述すればよいかわかりません。誰か助けてください。以下のコードを確認してください。evnets を作成しましたが、動作していません

前もって感謝します

var Listings = Backbone.PageableCollection.extend({
    model: Bdemo.Models.Listing,

    mode: "server" ,

    url: '/listings' ,

    events: {
      "click #paginationSelect" : "fetchSelectedData"
    },

    fetchSelectedData: function(){
      console.log("CAMEEEEEEEEEEEEEEEEEEEEEEEEEEE")
    },

    // Initial pagination states
    state: {
      pageSize: 3,
     /* sortKey: "updated",*/
      order: 1
    },


    queryParams: {
      totalPages: null,
      totalRecords: null,
      sortKey: "sort"
    },



    parseState: function (resp, queryParams, state, options) {
      return {totalRecords: resp.total_pages};
    },


    parseRecords: function (resp, options) {
      return resp.listings;
    }

  });
4

3 に答える 3

0

@ラトナカー:

必要なのはイベント機能だけです。ページ分割されたリンクごとに ID を設定します。次に、イベント関数を含めます。SPA(シングルページアプリケーション)の開発をお願いします。その上で、以下の設定を想定します。

homeview.js (「テンプレート」フォルダー) ページに、フッター タグで囲まれたページ分割されたリンクを含めます。

<footer>
  <button id="prevPage">previous</button> 
  <button id="nextPage">next</button>
</footer>

次に、対応する homeview.js ビュー ファイル ("views" フォルダー) に移動します。

backboneApp.Views.homeview = Backbone.View.extend({        

//Default "events" function for handling delegate events.
events:{

   //catching click events
    "click #prevPage" : "goPrevious" //on click of DOM which has id as prevPage, calling a function goPrevious.
    "click #nextPage" : "goNext" //same as above call goPrevious function. 
},

 //Defining the user created function goPrevious and goNext.

 goPrevious: function(){
  //Make your server call here.... for the previous 5 records.
  },
 goNext: function(){
  // server call here for the next 5 records.
  }

 });

したがって、ページ分割されたリンクにデリゲート イベントを使用する基本的な考え方は上記で定義されています。

于 2014-06-12T08:38:26.467 に答える
0

こんにちは、 Backbone.PageableCollection から自分の関数(callGmap)を呼び出すことで最終的にこれを解決しました。これが私の新しいコードです

var Listings = Backbone.PageableCollection.extend({
    model: Bdemo.Models.Listing,

    mode: "server" ,

    url: '/listings' ,

    events: {
      "click #paginationSelect" : "fetchSelectedData"
    },

    fetchSelectedData: function(){
      console.log("CAMEEEEEEEEEEEEEEEEEEEEEEEEEEE")
    },

    // Initial pagination states
    state: {
      pageSize: 3,
     /* sortKey: "updated",*/
      order: 1
    },


    queryParams: {
      totalPages: null,
      totalRecords: null,
      sortKey: "sort"
    },



    parseState: function (resp, queryParams, state, options) {
      return {totalRecords: resp.total_pages};
    },


    parseRecords: function (resp, options) {
      callGmap(resp.hash);
      return resp.listings;
    }

  });
于 2014-06-12T09:59:56.257 に答える