2011-10-24 1 views
2

레일즈 UJS를 사용하여 remote = true로 제출하는 양식이 있습니다.보내기 전에 XHR 요청에 데이터를 어떻게 추가합니까?

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"} 

왜 객체 객체가 nil입니까?

감사

답변

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

이 같은 시도는 뭔가. "list_item"속성을 만들고 이것을 js에서 동적으로 설정할 수 있습니다.

+0

감사하지만 settings.data를 기록 할 때이 항목이 추가되지 않습니다 ... 작동하지 않습니다 – AnApprentice

1

jquery_ujs의 최신 버전을 사용하는 경우 data-params을 사용할 수 있어야합니다 (이 시점에서 수행 할 수있는 경우). 그렇지 않으면 ajax:before에 바인딩하고 그 시점에서 데이터를 수정할 수 있습니다. 나는 data-params 나 자신을 향해 배울 것입니다. 여기

같은 문제에 좀 더 세부입니다 :

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