0

我有一个 Rails 应用程序,我正在尝试在我的视图中添加一些交互式内容。所以我有一个用于 datepicker 的 bootstrap-datepicker-rails gem 和用于数据处理的主干.js。但是当我尝试收听 datepicker 的 'changeDate' 事件时,我得到了一些错误。视图中的挂钩事件根本不起作用,只是不会调用该方法:

events: 
  'changeDate #dpstart': 'tryit'

tryit: ->
  console.log(this)
  this

当我尝试在路由器中捕获事件时,我无法访问我的收藏:

initialize: ->
    @datepicker = $('#dpstart').datepicker({
      "format": "yyyy-mm-dd",
      "weekStart": 1,
      "autoclose": true
      })       
    @datepicker.on('changeDate', @refetch, this) 

这样会产生错误,因为它无法获取上下文,并且

initialize: ->
    @datepicker = $('#dpstart').datepicker({
      "format": "yyyy-mm-dd",
      "weekStart": 1,
      "autoclose": true
      })       
    @datepicker.on('changeDate', @refetch) 

这种方式工作正常,但在@refetch 中我没有获得主干上下文,因此无法访问模型。我需要做什么?

4

1 回答 1

0

要么自己绑定上下文(因为你下划线或lowdash)。或者使用Backbone 的这个方法来做你的绑定(更好)。

关于为什么第一个没有被调用,请确保 datepicker 方法返回的内容是您将其绑定到的 jQuery 元素 ($('#dpstart'))。我不这么认为,所以你基本上听错了我的假设。

于 2013-03-29T13:40:59.517 回答