将嵌套资源控制器模型设置为父路径模型的子对象

时间:2013-06-28 14:31:04

标签: ember.js

这可能听起来令人困惑,但我会尽力解释它。

我有loans路由,然后我有一个名为product的嵌套资源。一个loan可以包含许多产品,当您选择查看其中一个产品时,我会重定向到product嵌套资源。问题是我的应用程序支持使用未保存的数据。因此,最初当您创建新贷款时,您可以在不保存贷款的情况下添加新产品(我的贷款模型在产品上具有hasMany属性),但是当我导航到产品路线时,我需要访问贷款路线上的贷款模型,并获得贷款目前拥有的所有产品,然后根据URL中的ID找到一个,但我面临的问题是,当我得到贷款控制器时,它的模型仍为空,我想这是因为贷款路线在产品路线后执行。

我采取了错误的方法,还是有办法获得贷款模式?

1 个答案:

答案 0 :(得分:2)

如果您将子控制器声明为依赖项,您应该能够从子控制器访问贷款控制器及其模型。

只需在产品控制器中添加needs: 'loans'(包含您的实际贷款路线名称),然后就可以访问贷款控制器,如下所示:this.get('controllers.loans')

您可以在此处阅读更多内容:http://emberjs.com/guides/controllers/dependencies-between-controllers/

更新以完全解决原始问题

在ProductRoute中,您应该可以通过执行此操作来访问父模型。模型(' loan')。确保使用在Router.map中声明的实际路由名称。