Как передать данные JSON из одной функции JavaScript в другую функцию JavaScript?

0

JS + Jquery + Rails 4

1.) view.html.erb

<%= select_tag "schedule[id]", options_for_select(@travel_names), {:multiple => true, :onchange => "renderSchedules(#{raw @schedule_hash.to_json},#{raw @deals_hash.to_json});" } %>

@schedule_hash = экземпляр, @deals_hash = экземпляр, переходящий в js-функцию как формат json.

2.) webapp.js

function renderSchedules(json_data, deals_hash){
   new_json_data = filterSchedule(json_data, deals_hash);
   //More Code
}

function filterSchedule(json_data, deals_hash) {
//More Code
 $('#active_fiters_blk').append('<a href="#" id="active_travel_filter" style="color:#F26F21;margin-right:3%;" value="'+operator_ids[i]+'" onclick="removeTravelFilter('+json_data+','+deals_hash+')">"Link"</a>');
// Here i am getting json_data = [object Object], deal_hash = [object, Object] on console , i need to pass json data to removeTravelFilter function
}

function removeTravelFilter(jd, dh){
  //Some COnditions
  renderSchedules(jd, dh);
  // From here also i need to pass json data to renderSchedule function.
}
  • 0
    Вы получили какие-либо ошибки?
  • 0
    Почему вы используете встроенный скрипт ???
Показать ещё 2 комментария
Теги:
ruby-on-rails-4

2 ответа

0
Лучший ответ

Вам лучше не использовать встроенный скрипт:

function filterSchedule(json_data, deals_hash) {
    $('<a href="#" id="active_travel_filter" style="color:#F26F21;margin-right:3%;" value="' + operator_ids[i] + '">Link</a>').on('click', function () {
        removeTravelFilter(json_data, deals_hash);
    }).appendTo('#active_fiters_blk');
}

При этом идентификаторы должны быть уникальными в контексте документа. Похоже, ваш код дублирует идентификаторы.

  • 0
    Нет, у меня есть уникальный идентификатор, я удалил суффикс, потому что мне нужно сделать код понятным для всех.
  • 0
    Это не
Показать ещё 2 комментария
0

Вам нужно json_data потому что это объект. Метод toString объекта возвращает строку "[object Object]". Вам необходимо использовать:

onclick="removeTravelFilter('+JSON.stringify(json_data)+','+JSON.stringify(deals_hash)+')">
  • 0
    На самом деле я хочу встроенный скрипт для каждой ссылки, но если я даю это, то конструкция ссылки становится неправильной? <a travels "}}, {})" = "" onclick = "removeTravelFilter ({" value = "43" style = "color: # F26F21; margin-right: 3%;" href = "#"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню