0

こんにちは、tokenInput のドキュメントを作成しましたが、編集中に text_field category_tokens にカテゴリが事前入力されていません。

ここにコードスニペットがあります

<input id="product_category_tokens" type="text" size="30" name="product[category_tokens]" data-pre="[{"created_at":"2010-09-13T03:33:17Z","description":"","id":x,"name":"Kitchen & Dining ","parent_id":xx,"permalink":"kitchen-dining","updated_at":"2011-01-05T11:17:10Z"}]" style="display: none;">

$(function() {
  $("#product_category_tokens").tokenInput("/categories.json", {
      crossDomain: false,
      prePopulate: $('#product_category_tokens').data('pre'),
      preventDuplicates: true
  });
});

<%= f.text_field :category_tokens, "data-pre" => @product.categories.map(&:attributes).to_json %>

どんなポインタでも大歓迎です!

4

3 に答える 3

1

Jsonは文字列としてではなくオブジェクトを返す必要があります。これにより、文字列がJsonオブジェクトに変換されます

 JSON.parse(tokendata)
于 2013-01-16T11:55:12.883 に答える
1

変化する

<%= f.text_field :category_tokens, "data-pre" => @product.categories.map(&:attributes).to_json %>

<%= f.text_field :category_tokens, input_html => { "data-pre" => @product.categories.map(&:attributes).to_json } %>
于 2012-01-25T13:31:12.653 に答える
1

prePopulateに変更してみてください$(this).data("pre")

もう 1 つのヒントは、レンダリング時に変更されるため、JS 関数とビューで id の代わりにフィールド クラスを使用することです。

それがあなたを助けることを願っています。

于 2011-09-06T13:30:51.840 に答える