【发布时间】:2014-01-10 03:52:02
【问题描述】:
我是一名初学者,具有良好的 ruby 和 rails 知识,但 JavaScript 知识非常有限。
我正在尝试在 Select2 jquery 插件实例中推送一些值。
我正在使用这个脚本来管理我的 Select:
$('.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);
}
}
});
});
我对这一行的“Unexpected token 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' |
}, |
}
我保存的值以正确的方式生成:我尝试使用 pry 和 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="[{"id":1,"name":"Sony"},{"id":2,"name":"Panasonic"}]" data-url="/admin/brands/list.json" id="content_brand_ids" name="content[brand_ids]" type="text" value="[1, 2]">
为什么我会遇到这个问题? to_json 是 rails 提供的方法...
【问题讨论】:
-
能否也分享一下html示例
-
data-saved中的值是什么 -
@ArunPJohny 我的 Haml 代码生成的 HTML?
-
能否添加浏览器视图源生成的html
-
我想你可以直接说
var saved = $(this).data('saved');不需要解析它,data()方法会帮你搞定
标签: jquery ruby-on-rails json