Ember中的嵌套属性表单

时间:2014-04-02 16:14:55

标签: ember.js

目前正在尝试使用Ember.js并热爱它。我遇到的最大痛点是处理控制多个模型的复杂形式。在Rails中,这是一个相当简单的过程。

# Models
class Person < ActiveRecord::Base
  attr_accessible :addresses_attributes
  has_many :addresses
  accepts_nested_attributes_for :addresses
end

class Address < ActiveRecord::Base
  belongs_to :person
end

# View
<%= form_for @person do |f| %>
  <%= f.text_field :name %>
  <%= f.fields_for :addresses do |af| %>
    <%= af.text_field :street %>
  <% end%>
<% end %>

使用Ember,我已经知道如何嵌套路线并代表multiple objects with one route。我无法弄清楚的是如何使用一个表单实际操作这些模型,同时仍然尊重任何相关的验证逻辑,绑定和脏检查。有什么指针吗?

编辑:这似乎是一个带有Ember数据的real issue,所以看起来我必须弄清楚如何用普通的Ember对象来做这件事。

1 个答案:

答案 0 :(得分:1)

您仍然可以使用ember数据解决问题。在嵌套模型中,脏检查不应该那么难,你必须循环遍历嵌套模型并使用观察者检查它们是否是脏的(这并不困难)。你甚至可以在嵌套模型上进行批量保存,我之前不知道这是可能的:What Does bulkCommit Mean In The Context Of Ember's RestAdapter?

对于嵌套的json结构,它可能有点棘手。但是我们已经能够使用自定义转换使用嵌套的JSON结构:https://github.com/emberjs/data/blob/master/TRANSITION.md#json-transforms

让观察者跟踪转换后的数据是否变脏可能有点压倒性,但您可以轻松添加一个函数来检查数据在转换过程中是否变脏。

相关问题