Ember.js emberjs模型在控制器中丢失

Ember.js emberjs模型在控制器中丢失,ember.js,Ember.js,Ember为您添加默认值做得很好。但是当您必须覆盖默认控制器时会发生什么 考虑以下示例: 正如您在示例中所看到的,如果单击“帐户”,将显示两组地址,其中两组通过地址值,另两组不通过 我想我“我不知道如何从AccountEdit的路由中获取模型数据并将其传递到控制器,使其显示在表单中。为您生成的控制器是ObjectController,而不是常规控制器。区别在于ObjectController上的模型属性可以直接访问,即ObjectController代理其模型 使AccountEditCont

Ember为您添加默认值做得很好。但是当您必须覆盖默认控制器时会发生什么

考虑以下示例:

正如您在示例中所看到的,如果单击“帐户”,将显示两组地址,其中两组通过地址值,另两组不通过


我想我“我不知道如何从AccountEdit的路由中获取模型数据并将其传递到控制器,使其显示在表单中。

为您生成的控制器是ObjectController,而不是常规控制器。区别在于ObjectController上的模型属性可以直接访问,即ObjectController代理其模型

使AccountEditController成为ObjectController的实例或在您的帐户/编辑模板中,或将value=listing address替换为value=model.listing-address


编辑:在不使用ObjectController的情况下使用JsBin:

Ember.Controller
只是一个基类,提供基本接口,如操作、混合和消息传递等

但是当你想处理数据时,你有两个选择-

ObjectController
用于只有一个模型实例连接到控制器的情况。比如1个用户,1个帖子等等

正如@Gaurav已经指出的,如果您只是将控制器更改为
ObjectController
然后它就可以工作了。原因是它会告诉您的控制器查找包含一个数据实例的模型

还有一个
ArrayController
,当您有一个要迭代的记录数组时使用它。比如10条评论等等

重写
setupController
始终在第一行调用
this.\u super(控制器、型号)
。余烬 在内部使用此方法绑定数据和其他路由器设置


总是有更多的东西要找到。

我认为由于这种混乱,ObjectController将被弃用。是的,我希望尝试获得一个工作示例来解决这个问题,因为ObjectController将被弃用。我看到它很简单,如一种形式的{{listing address}和{{model.listing address}另一种是让它工作,但假设我使用相同的表单添加和编辑。。。我们现在有两个不同的变量,而不是一个。最好总是使用:{{listing address}},而不必添加模型。您必须显式地将AccountEditController设置为ObjectController.ahhh ok。。。。非常简单:App.AccountEditController=Ember.Controller.extend({});到App.AccountEditController=Ember.ObjectController.extend({})@马特:是的,很简单:)