我是ember的新手,并没有真正区分两种语法.我应该在哪种情况下使用哪种情况.即哪一个更适合在路由中使用,哪一个适用于控制器.
this.get('model')
相反
this.modelFor('artists/show')
解决方法
this.get('model') //controller call this.modelFor('someRoute') //route call
在Ember中,默认情况下路由setupController挂钩执行以下一行代码:
setupController: function(controller,model){ controller.set('model',model); }
这将获取从模型挂钩返回的任何内容,并使用此值设置控制器的模型属性.在控制器内,this.get(‘model’)是访问此模型的正确方法.此外,开发人员可以覆盖此挂钩并执行不同的操作,例如将模型设置为等于从模型挂钩返回的某些子属性(controller.set(‘model’,model.prop).这是值得注意的,因为当你从另一个路径调用this.modelFor,你不会得到由setupController设置的路由关联控制器的模型.你得到的是从模型钩子返回的任何内容,如果我没记错的话,它下面是路由的currentModel属性.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。