2012-06-27 5 views
0

batman.js에서 datepicker, chosen 등과 같은 jQuery 플러그인을 사용하는 가장 좋은 방법은 무엇입니까? data-mixin 도우미를 찾았지만 사용 방법에 대한 설명서와 예제가 없습니다. 또한 나는이 문제를 발견했다 : https://github.com/Shopify/batman/issues/199, 그러나 그것도 문서화되지 않았기 때문에 다시 나는 그것을 얻을 수 없다.Batman.js : jQuery datepicker, 선택된 jQuery 플러그인 사용

은 이상적으로는 다음과 같이 뭔가를하고 싶지 :

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

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

답변

1

아직 사용하지 않았습니다. 그러나 "Really after 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] 
+0

고마워요! 나는 beforeFilter를 성공하기 전에 시도했지만, master 브랜치에서 원하는 동작이 나타난 것 같습니다. 당신의 대답을 수락하기 전에 잠깐 기다릴 수 있습니까? 어쩌면 믹스 인이있는 더 쉬운 해결책이있을 것입니다 ... 다시 한번 감사드립니다. –

+0

Np. 믹스 인으로 할 방법을 알아 내면 알려주세요. :) – ryanjones

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 솔루션처럼 보인다하지 않습니다. 나는 여전히 더 좋은 것을 찾고 있습니다.