这可能听起来有点令人困惑,但我会尽力解释一下。
我有一个loans路由,然后在它下面嵌套了一个名为product的资源。一个loan可以有多个产品,当您选择查看其中一个产品时,我会重定向到product嵌套资源。问题是我的应用程序支持处理未保存的数据。因此,最初创建新贷款时,您可以在不保存贷款的情况下添加新产品(我的贷款模型在产品上有一个hasMany属性),但是当我导航到产品路由时,我需要访问贷款路由上的贷款模型,并获取贷款当前拥有的所有产品,然后根据URL中的id找到一个,但我面临的问题是,当我获得贷款控制器时,其模型仍然为空,我猜这是因为贷款路由是在产品路由之后执行的。
我采取了错误的方法,还是有办法访问贷款模型?
发布于 2013-06-28 22:37:14
如果将loans控制器声明为依赖项,则应该能够从子控制器访问它的模型。
只需在产品控制器中添加needs: 'loans' (带有实际的loans路由名称),然后就可以像这样访问loans控制器:this.get('controllers.loans')。
你可以在这里阅读更多内容:http://emberjs.com/guides/controllers/dependencies-between-controllers/
更新以完全解决原始问题
在ProductRoute中,您应该能够通过执行this.modelFor('loan')来访问父模型。确保使用在Router.map中声明的实际路由名称。
https://stackoverflow.com/questions/17367137
复制相似问题