Backbone-on-railsgemのBackbone.js0.9.2を使用しています。また、古いハッシュURLの代わりに新しい「pushState」を使用しようとしています。
問題
予定を追跡するために、CRUDインターフェースのような標準のRailsを構築しています。メインのindex.jst.ecoページに「新しい」リンクがあります。
<h1>Appointments</h1>
<p><a href="/appointments/new" class="new">New Appointment</a></p>
ページをロードしてその「新しい」リンクをクリックすると、バックボーンがイベントを発生させ、ページ全体をリロードする必要はありません。そのイベントは次のとおりです。
class BackboneOnRails.Views.AppointmentsIndex extends Backbone.View
template: JST['appointments/index'],
events: ->
'click .new': 'newAppointment'
newAppointment: ->
Backbone.history.navigate("/appointments/new", {trigger: true})
return false
# The rest of the index methods omitted for brevity
次に、バックボーンルーターを呼び出します。
class BackboneOnRails.Routers.Appointments extends Backbone.Router
routes:
'': 'index'
'appointments': 'index'
'appointments/new': 'new'
initialize: ->
this.appointments = new BackboneOnRails.Collections.Appointments()
this.appointmentsIndexView = new BackboneOnRails.Views.AppointmentsIndex({collection: this.appointments})
this.appointmentsIndexView.render()
index: ->
$("#container").html(this.appointmentsIndexView.el)
this.appointments.fetch()
new: ->
appointments = new BackboneOnRails.Collections.Appointments()
view = new BackboneOnRails.Views.AppointmentNew({collection: appointments})
$("#container").html(view.render().el)
この問題は、ブラウザの戻るボタンを押してから、「新規」リンクをもう一度使用してみると発生します。今回は、ページの完全なリロードを実行します。
ブラウザに戻ったときにjavascriptバインディングはどうなりますか?
アイテムのショーイベントがあり、問題なく行き来できます。両方を比較しましたが、同じ種類の呼び出しのように見えます。