我有一个包含单个数据的模型,但它在数组中。我想从我的控制器内部检索这些数据并使其成为控制器的属性,以便我可以在其他控制器中使用它。例如:
prog
基本上我想获得整个相关模型,以便我可以访问它的数据。我必须使用什么语法?谢谢
答案 0 :(得分:0)
也许这会有所帮助: Getting the model inside a controller emberjs
基本上,模型是异步加载的。一旦加载了数据,您就可以使用this.get('model').then(function(data) { ... })
来处理数据。虽然我建议使用Ember.computed宏,如.mapBy:
currentsubuser: Ember.computed.mapBy('model', 'subuserproperty')
http://emberjs.com/api/classes/Ember.computed.html#method_mapBy
答案 1 :(得分:0)
我不是100%确定你的目标是什么,但是从另一个控制器你可以做someAttribute: Ember.computed.alias('controllers.someController.model')
除非您以某种方式对其进行转换,否则无需在控制器中创建任何提供模型数据的本地属性。
您需要在该控制器中指定一个needs
来引用您从中提取模型数据的那个(调整您的全局样式javascript )
export default Ember.Controller.extend({
needs: ['someController'],
someAttr: Ember.computed.alias('controllers.someController.model')
})
我知道这样可以正常工作,但这并不是说你应该做任何这些。而且,显然,确保模型数据在您期望的原始控制器中。验证这一点的一种快速方法是将日志助手扔进您的手柄,如{{log model}}
或在浏览器中使用Ember Inspector。
更新:根据您的评论,这将有效
export default Ember.Controller.extend({
currentSubUser: Ember.computed.readOnly('model.firstObject'),
})
然后,在您的模板中,您可以使用{{ currentSubUser.foo }}
答案 2 :(得分:0)
无需将模型存储到属性中。
检查dependencies between controllers。
但要回答你的问题,请这样做:
在想要检索** CurrentsubuserController **模型的控制器上,您可以定义此控制器的需求:
export default Ember.ArrayController.extend({
needs: "currentsubusercontroller"
currentSubUserController: Ember.computed.alias("controllers.CurrentsubuserController")
});
然后您可以使用this.get('currentSubUserController.model')