2017-03-01 66 views
0

我正在使用鐵形式將數據發送到Rails服務器。目前的形式發送JSON與此類似:格式化來自鐵形式的JSON數據

{ 
    "date": "January 1", 
    "name": "John Doe", 
    "company": "Whatever Inc." 
} 

但是,爲了獲得它在軌道上結束我需要它採用以下格式:

{ 
    "userInfo": { 
    "date": "January 1", 
    "name": "John Doe", 
    "company": "Whatever Inc." 
    } 
} 

我如何嵌套表格數據在userInfo參數?我嘗試使用iron-form-presubmit事件監聽器,但無法使其工作。

這裏是我的鐵形式的代碼:

<form is="iron-form" id="form" method="post" action="url/for/api"> 
    <input name="date" is="iron-input"> 
    <input name="name" is="iron-input"> 
    <input name="company" is="iron-input"> 

    <div id="buttons"> 
    <paper-button id="submit" raised onclick="_submit(event)">Save</paper-button> 
    <paper-button id="reset" raised onclick="_reset(event)">Reset </paper-button> 
    </div> 
</form> 

和JavaScript:

<script> 

Polymer({ 
    is: 'my-view1', 
}); 

function _submit(event) { 
    var form = Polymer.dom(event).localTarget.parentElement.parentElement; 
    form.submit(); 
} 

function _reset(event) { 
    var form = Polymer.dom(event).localTarget.parentElement.parentElement; 
    form.reset(); 
} 

</script> 
+0

你能提供一個代碼片段嗎? –

+0

@JonathanPortorreal我添加的代碼我的問題 –

回答

1

從我瞭解的數據被提交之前,你可以更新請求主體,改造目前的數據轉化爲您喜歡的對象/結構:

<form is="iron-form" on-iron-form-presubmit="_presubmit" id="form" method="post" action="url/for/api"> 
    <input name="date" is="iron-input"> 
    <input name="name" is="iron-input"> 
    <input name="company" is="iron-input"> 

    <div id="buttons"> 
    <paper-button id="submit" raised onclick="_submit(event)">Save</paper-button> 
    <paper-button id="reset" raised onclick="_reset(event)">Reset </paper-button> 
    </div> 
</form> 

類似於它的完成方式here,但完全改變身體

function _presubmit(e) { 
    let body = this.$.form.request.body; 
    body = {"userInfo" : body }; 
} 

希望這有助於律。

+0

現在,它返回這樣的: '參數:{「用戶信息」 =>「的翻譯:」}' 任何想法,爲什麼? –

+0

@LauraM看起來正確,如果你是console.loggin,你需要JSON.stringify()它看到它,因爲它是一個嵌套的對象 –

+0

明白了,謝謝! –