2014-01-10 26 views
0

我是一名初學者,擁有優秀的ruby & rails知識,但是JavaScript知識非常有限。JQuery,Rails和Json:意想不到的令牌o

我想在Select2 jQuery插件實例中推送一些值。

我使用這個腳本來管理我的選擇:

$('.ajaxselect').each(function() { 
    var url = $(this).data('url'); 
    var placeholder = $(this).data('placeholder'); 
    var saved = jQuery.parseJSON($(this).data('saved')); 
    $(this).select2({ 
     minimumInputLength: 2, 
     multiple: true, 
     placeholder : placeholder, 
     allowClear: true, 
     ajax: { 
     url: url, 
     dataType: 'json', 
     quietMillis: 500, 
     data: function (term) { 
      return { 
      name: term 
      }; 
     }, 
     results: function (data) { 
      return {results: data}; 
     } 
     }, 

     formatResult: function (item, page) { 
     return item.name; 
     }, 

     formatSelection: function (item, page) { 
     return item.name; 
     }, 

     initSelection : function (element, callback) { 
     if (saved) { 
      callback(saved); 
     } 
     } 

    }); 
    }); 

我有「意外令牌O」的這條線上的一個問題:

var saved = jQuery.parseJSON($(this).data('saved')); 

在我看來,我打電話這個代碼是這樣的:

= form.input :brand_ids, label: false,   | 
        input_html:          | 
        {            | 
        class: 'ajaxselect form-control',    | 
        data: {          | 
         placeholder: "Scegli brand",    | 
         saved: content.brands.to_json,    | 
         url: '/admin/brands/list.json'    | 
          },          |      
        }  

我以正確的方式產生的保存價值:我嘗試用撬和content.brands.to_json回報我的權利數據。

這裏是我的binding.pry登錄

pry(#<#<Class:0x007fc66caecd30>>)> content.brands.to_json 
=> "[{\"id\":1,\"name\":\"Sony\"},{\"id\":2,\"name\":\"Panasonic\"}]" 

這就是爲什麼我有這個問題,我的HTML生成的代碼

<input class="string optional form-control form-control form-control form-control ajaxselect form-control" data-placeholder="Scegli brand" data-saved="[{&quot;id&quot;:1,&quot;name&quot;:&quot;Sony&quot;},{&quot;id&quot;:2,&quot;name&quot;:&quot;Panasonic&quot;}]" data-url="/admin/brands/list.json" id="content_brand_ids" name="content[brand_ids]" type="text" value="[1, 2]"> 

? to_json是軌道提供了一種方法......

+0

可以分享h tml示例以及 –

+0

'data-saved'中的值是什麼? –

+0

@ArunPJohny由我的Haml代碼生成的HTML? –

回答

1

的問題是與線

var saved = jQuery.parseJSON($(this).data('saved')); 

應該

var saved = $(this).data('saved'); 

因爲.data()會做解析爲您

演示:ProblemSolution

相關問題