Batman.js:使用jQuery datepicker,选择和类似的jQuery插件

时间:2012-06-27 19:45:57

标签: javascript jquery ajax jquery-ui batman.js

在batman.js中使用datepickerchosen等jQuery插件的最佳方法是什么?我找到了data-mixin帮助器,但没有关于如何使用它的文档和示例。我也发现了这个问题:https://github.com/Shopify/batman/issues/199,但我再也无法解决它,因为它也没有记录。

理想情况下,我想做这样的事情:

#helpers/application_helper.js.coffee
datePicker: (field) ->
  $(field).datepicker()

#some_view.html
<input data-helper="datePicker" ... >

2 个答案:

答案 0 :(得分:1)

最后我谈到了:在特定操作结束时调用插件。例如:

#controllers action
new: (params) ->
  #some logic here
  @view = @render()
  @view.on 'ready', =>
    $('#project_due_date').datepicker()

取自:https://groups.google.com/forum/?fromgroups#!topic/batmanjs/dkYg7ijpaQI

但它看起来不像DRY解决方案。我还在寻找更优化的东西。

答案 1 :(得分:1)

我还没用过它们。但是,我认为你应该可以使用“真正追逐过滤后”afterFilters。哪些是afterFilers,但它们最近已被改版,所以它们会在渲染DOM后触发。

通过查看测试,您应该能够为操作指定它们。这应该适用于DRY,并且只有afterFilter中的代码才能执行特定操作。

test 'afterFilters on outer actions should fire after afterFilters on inner actions', 1, ->
  order = []
  class TestController extends Batman.Controller
    @afterFilter 'show', -> order.push 1
    @afterFilter 'test', -> order.push 2
    show: -> @render false
    test: ->
      @render false
      @executeAction 'show'

  @controller = new TestController
  @controller.dispatch 'test'
  deepEqual order, [1, 2]