0

简而言之:

使用 Backbone 和 Underscore 模板时,确保表单中的数据在 POST 到服务器时的格式与最初获取时完全相同的最佳方式是什么?

更长的问题:

我目前正在使用 Backbonefetch()以 JSON 格式从服务器检索一些数据。我success正在使用该 JSON 并使用下划线模板中的数据,如下所示:

<div class="module-content">
    <form>
        <div class="customer-primary">
            <% if (ParentCompany) { %>
            <div class="row">
                <div class="label">Parent Company</div>
                <div class="value">
                    <div class="current-value"><%= ParentCompany %></div>
                    <div class="editable-value"><input name="ParentCompany" value="<%= ParentCompany %>"></div>
                </div>
            </div>
            <% } %>
            <% if (Title) { %>
            <div class="row">
                <div class="label">Title</div>
                <div class="value">
                    <div class="current-value"><%= Title %></div>
                    <div class="editable-value"><input name="Title" value="<%= Title %>"></div>
                </div>
            </div>
            <% } %>
            …
        </div>
    </form>
</div>

JSON 有许多具有多个条目的子项,如下所示:

{
   "UserID":"12345",
   "FirstName":"Brandon",
   "Ship": {
      "Address1":"33 One Two Ave",
      "Address2":"#23D",
      "Address3":"",
      "City":"New York",
      "State":"NY",
      "Country":"United States",
      "Zip":"10023"
   },
   "Phones": [
      {
         "Kind":"Tel",
         "Number":"512-123-4567"
      },
      {
         "Kind":"Fax",
         "Number":"512-123-4567"
      }
   ]
}

我如何确保我以这样一种方式构建表单,即它返回一个以相同方式格式化的对象,以便于数据库更新?

如果您需要更多信息,请告诉我!

4

2 回答 2

2

如果我理解您的问题,您正在尝试确保 JSON 数据结构与服务器在您发送数据时所期望的相匹配。(巧合的是,它与您从服务器收到的结构相同。)

您想要做的是覆盖模型的 toJSON 函数,以便您的数据按预期序列化。然后,当它被 Backbone.sync 持久化时,正确的数据结构将被发送到远程 API。

看看这些:

于 2013-05-29T19:08:47.020 回答
0

我认为您能做的最好的事情就是验证您的模型。并使您需要发送的字段成为必需的,如果您需要所有这些字段,则验证您的整个模型。这个插件是这个任务的一个不错的选择。 https://github.com/fantactuka/backbone-validator

于 2013-05-29T16:04:33.683 回答