Ember.js 将嵌套资源控制器模型设置为父路由模型的子对象

Ember.js 将嵌套资源控制器模型设置为父路由模型的子对象,ember.js,Ember.js,这听起来可能有点困惑,但我会尽力解释 我有一个loansroute,然后在它下面有一个名为product的嵌套资源。一个loan可以有许多产品,当您选择查看其中一个产品时,我将重定向到product嵌套资源。问题是我的应用程序支持处理未保存的数据。因此,最初创建新贷款时,您可以在不保存贷款的情况下添加新产品(我的贷款模型在产品上有许多属性),但当我导航到产品路径时,我需要访问我的贷款路径上的贷款模型,并获取贷款当前拥有的所有产品,然后根据URL中的id找到一个,但我面临的问题是,当我得到贷款控制

这听起来可能有点困惑,但我会尽力解释

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


我采取了错误的方法,或者是否有办法访问贷款模型?

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

只需在产品控制器中添加
需要:'loans'
(使用实际的贷款路线名称),然后您就可以像这样访问贷款控制器:
this.get('controllers.loans')

您可以在此处阅读更多内容:

更新以完全解决原始问题
在ProductRoute中,您应该能够通过执行以下操作来访问父模型。modelFor('loan')。确保使用Router.map中声明的实际路由名称。

是,但我需要在我的产品路由中访问它,因为我在那里获得了路由参数,即产品id,因此我可以将模型设置为产品控制器,或者是否有方法访问控制器中的路由参数?抱歉,我想我没有完全理解你需要从这条路线上拿到它。在ProductRoute中,您应该能够通过执行
this.modelFor('loan')
来访问父模型。您应该使用在Router.map中使用的实际路由名称。让我知道这是否回答了你的问题,我会编辑上面的答案,使其更彻底。它的工作,谢谢!我会打标记作为答案,我可以给你们更多的分数,我已经被绊倒了一段时间,真的很感激。