0

バックボーンのルーティングに問題があります。製品インデックス (localhost:3000/products) で Backbone.history.start() を呼び出します。ルート:

'': 'product_index'  
':id': 'product_show' (tag 'a' link 'localhost:3000/products#123')
':id/items/:item_id': 'item_show' (tag 'a' link 'localhost:3000/products#123/items/456')

注: すべてのタグには data-ajax = 'false' があり、いくつかの構成があります。

$(document).bind('mobileinit', function() {
        $.mobile.ajaxEnabled = false;
        $.mobile.linkBindingEnabled = false;
        $.mobile.hashListeningEnabled = false;
        $.mobile.pushStateEnabled = false;
      });

ページ 'localhost/products#123' にいて、タグ 'a' リンク 'localhost:3000/products#123/items/456' をクリックすると、エラーが発生します。「ページの読み込み中にエラーが発生しました」というアラートが表示され、URL が「localhost:3000/123/items/456」に自動変更され、コンソールに「GET localhost:3000/123/items/456 404 (Not Found)」というエラーが表示されます。

私のルートファイル:

class Braindu.Routers.Mobile extends Backbone.Router
  initialize: (options) ->
    @products = new Braindu.Collections.Products()
    @products_view = new Braindu.Views.MobileProductsIndex(collection: @products, id_product_el:'product-index-page')

  routes:
    ''    : 'product_index'
    ':id' : 'product_show'
    ':id/items/:item_id': 'item_show'


  product_index: ->
    @product_index_view.render()

  product_show:(id) ->
    $.mobile.changePage( "#product-show-page" , { reverse: false, changeHash: false } )
    current_product_model = @product_index_view.product_collection.where({_id: id})[0]
    if current_product_model != null && current_product_model != undefined
      @product_index_view.render_current_product(current_product_model)

  item_show:(id, item_id)->
    console.log 'item showwwwwwwwwwwwwwwwwwwwwwww'
    $.mobile.changePage( "#object-card-page" , { reverse: false, changeHash: false } )
4

1 に答える 1

0

localhost:3000/123/items/456 を呼び出すとき、以下の関数を呼び出していますか?

 product_show:(id) ->
    $.mobile.changePage( "#product-show-page" , { reverse: false, changeHash: false } )
    current_product_model = @product_index_view.product_collection.where({_id: id})[0]
    if current_product_model != null && current_product_model != undefined
      @product_index_view.render_current_product(current_product_model)

もしそうなら、デバッグしてidの値を見つけてください。

ありがとうございました

于 2013-06-19T12:22:50.210 に答える