我正在使用 Backbone-on-rails gem 中的 Backbone.js 0.9.2。我也在尝试使用新的“pushState”而不是旧的哈希 URL。
问题
我正在构建一个像 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 绑定发生了什么?
我有一个项目的表演活动,我可以来回走动没有问题。我已经比较了两者,它们看起来像是同一种调用。