emberjs模型在控制器中丢失

时间:2015-04-15 15:15:34

标签: ember.js

Ember为您提供了很好的默认值。但是当你必须覆盖默认控制器时会发生什么?

考虑以下示例: data passes, then it does not

正如您在示例中所看到的,如果您点击“帐户”'您将看到两组地址,2表示传递地址值,2表示没有。

我想我无法弄清楚如何从AccountEdit路线获取模型数据并将其传递到控制器中,以便它显示在表单中。

2 个答案:

答案 0 :(得分:1)

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

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

编辑:在不使用ObjectController的情况下使用JsBin:http://emberjs.jsbin.com/mezeculiha/1/

答案 1 :(得分:1)

Ember.Controller只是一个基类提供基本接口,如actions,mixins和message passing等。

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

当您只有一个模型实例连接到控制器时,将使用

ObjectController。喜欢1个用户,1个帖子等

  

正如@Gaurav已经指出你是否只是将控制器更改为
  ObjectController那么它会起作用。为什么,因为它会告诉控制器查找包含一个数据实例的模型。

当您有要迭代的记录数组时,也会使用ArrayController。像10条评论等。

  

覆盖setupController时还有一点值得注意   始终在第一行拨打this._super(controller,model)。烬   在内部使用此方法来绑定数据和其他路由器设置。

总有更多要找出here