0

datepicker、などのjQuery プラグインchosenを batman.js で使用する最良の方法は何ですか? ヘルパーを見つけまし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" ... >
4

2 に答える 2

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 ソリューションのようには見えません。私はまだより最適なものを探しています。

于 2012-06-30T10:11:25.747 に答える
1

まだ使っていません。ただし、「本当に afterFilters の後に」 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]
于 2012-07-02T03:57:12.283 に答える