次のバックボーンモデルがあります
var Page = Backbone.Model.extend({
defaults: {
id: null,
metadata: {
name: '',
title: '',
...
},
children: []
parent: null
},
urlRoot: '/api/page',
initialize: function () {}
});
次のフォームを保存するときは、このフォームの JSON 表現を作成し、サーバーに保存する前にバックボーン モデルを更新する必要があります。フォームが動的に作成されるため、フォーム名を探すためのハードコーディングされたセレクターを使用できないため、これを行う必要があります。以下はフォームの例です。
<form>
<label>Name:</label>
<input type="text" name="metadata.name" value="">
<label>Title:</label>
<input type="text" name="metadata.title" value="">
<label>Slug:</label>
<input type="text" name="metadata.slug" value="">
<label>Url:</label>
<input type="text" name="metadata.url" value="">
<button type="submit">Save</button>
</form>
HTML フォーム データに基づいてバックボーン モデルを更新する最も効率的な方法は何ですか?
編集
オブジェクト間のドットの代わりに角括弧を使用して、この回答を stackoverflow で見つけました。この手法はかなりうまく機能すると思いますが、ドット表記を使用してフォームをシリアル化する同様の方法があるでしょうか?