2012-01-10 2 views
1

현재 Rails 애플리케이션을 업그레이드 중입니다. 좀 더 간단한 JQuery 호출을 번역하는 동안, 나는 더 복잡한 JQuery 자동 완성을 고수했다.Coffeescript (Rails 3.1)로 JQuery-Javascript 호출 번역하기

자바 스크립트

$(document).ready(function() { 
    var data_category = <%= @autocomplete_categories %>; 
    $("#entry_category").autocomplete({ 
     source: function(req, responseFn) { 
      var re = $.ui.autocomplete.escapeRegex(req.term); 
      var matcher = new RegExp("^" + re, "i"); 
      var a = $.grep(data_category, function(item,index) { 
       return matcher.test(item); 
      }); 
      responseFn(a); 
     }, 
     minLength: 0, 
     delay: 0, 
     autoFocus: true 
    }); 

커피 스크립트 : 나는 두 가지 기능을 번역 관리하지 않는

$ -> 
    data_category = <%= @autocomplete_category %>; 
    $("#entry_category").autocomplete({ 

은 올바른 구문에 대한 조언을 바랍니다!

답변

1
$ -> 
    data_category = <%= @autocomplete_categories %> 
    $('#entry_category').autocomplete 
    source: (req, responseFn) -> 
     re = $.ui.autocomplete.escapeRegex req.term 
     matcher = new RegExp "^#{re}", 'i' 
     a = $.grep data_category, (item, index) -> matcher.test item 
     responseFn(a) 
    minLength: 0 
    delay: 0 
    autoFocus: true 
+0

완벽하게 닫습니다. JQuery가 호출되지만 목록은 비어 있습니다. 경고 data_category를 추가했는데이 결과는 정의되지 않았습니다. <% = @autocomplete_categories %>의 _forms.html.erb (일부)에있는 디버그 출력은 목록 요소를 표시합니다. 어떤 생각을 어떻게 고쳐야합니까? –

+0

저는 실제로 레일즈에 대해 알지 못합니다 만 그리스트에 맞는 이름입니까? Javascript에는 'autocomplete_categories'가 있지만 coffeescript에는 'autocomplete_category'가 있습니다. 이게 자바 스크립트로 작동 했나요? – loganfsmyth

+0

예, 재검색 만하면 JS에서 작동하며 위의 코드에서는 작동하지 않습니다. 문제는 @autocomplete_categories가 할당되지 않았거나이 범위에서 사용할 수없는 것 같습니다. 'data_category = <% = @autocomplete_categories %> 경고 (<% = @autocomplete_categories %>) 경고 (data_category)'와 두 경고가 모두 정의되지 않은 것으로 표시됩니다. 뷰에서'@ autocomplete_categories'의 디버그가 목록을 표시하므로 뷰에 해당하는 뷰에는 데이터가 있습니다. –

관련 문제