我有一个rails应用程序,我正在尝试添加一些交互式内容。所以我有一个bootstrap-datepicker-rails gem用于datepicker和backbone.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中我没有获得骨干上下文因此无法访问模型。我该怎么办?
答案 0 :(得分:0)
使用this自己绑定上下文(因为您有下划线或lowdash)。或者使用Backbone的this method进行绑定(更好)。
关于为什么没有调用第一个,请确保datepicker方法返回的是你绑定它的jQuery元素($('#dpstart'))。我不这么认为,所以你基本上是在听我假设的错误。