在batman.js中使用datepicker
,chosen
等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" ... >
答案 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]