Ember为您提供了很好的默认值。但是当你必须覆盖默认控制器时会发生什么?
考虑以下示例: data passes, then it does not
正如您在示例中所看到的,如果您点击“帐户”'您将看到两组地址,2表示传递地址值,2表示没有。
我想我无法弄清楚如何从AccountEdit路线获取模型数据并将其传递到控制器中,以便它显示在表单中。
答案 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。