Как добавить данные в запрос XHR перед отправкой? - PullRequest
2 голосов
/ 24 октября 2011

У меня есть форма, которая отправляет с remote = true, используя Rails UJS.

В событии beforeSend я хочу добавить данные. Я пытаюсь со следующим:

onNewListItemFormBeforeSend : function(event, xhr, settings) {

  settings.data += { 'list_item[title]' : input_val,
    'list_item[position]' : 0,
    'list_items[open_positions]' : 'stuff',
   'list_items[done_positions]' : 'stuff' )
  };

}

Но это добавление объекта при выходе из файла settings.data ... Как правильно добавить эти элементы в settings.data?

Спасибо

UPDATE

Я тоже пытался просто сделать:

settings.data = { 'number' : 'XXXXXX' }

Но это не сработало. В логах вижу:

 Started POST "/lists/9/list_items" for 127.0.0.1 at 2011-10-24 11:55:39 -0700
     Processing by ListItemsController#create as JSON
     Parameters: {"object Object"=>nil, "list_id"=>"9"}

Почему объект объекта ноль?

Спасибо

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Если вы используете более новую версию jquery_ujs, у вас должна быть возможность использовать data-params (если вы можете сделать это в данный момент). В противном случае вы можете привязаться к ajax:before и изменить данные в этой точке. Я бы учился на data-params сам.

Вот еще немного подробностей к той же проблеме:

https://github.com/rails/jquery-ujs/issues/168

0 голосов
/ 24 октября 2011
settings.data["list_item"] = { 'title' : input_val,
    'position' : 0,
    'open_positions' : 'stuff',
    'done_positions' : 'stuff'
};

попробуйте что-то вроде этого.Вы можете создать свойство list_item и динамически установить его в js следующим образом.

...