Ember.js:使用transitionTo时能否为transition对象的data属性赋值?
关于TransitionTo中转场对象data属性的使用问题
嘿,这个问题问得很实用!我来给你拆解清楚:
1. 能不能给transition对象的data属性设置值?
完全可以! 你自己摸索出来的方法 this.transitionTo('route.name').data = {my: 'data'} 是完全可行的——通过这种方式,你可以在触发转场时把自定义数据挂载到transition实例的data属性上,当进入目标路由后,不管是在model、beforeModel还是afterModel钩子中,都能通过transition.data访问到你传递的内容。
2. 原生的transition.data用途是什么?
这个空的data: {}是Ember框架(transitionTo是Ember Router的核心方法)预留的通用容器,原本是用来存储转程过程中的内部元数据的——比如跳转的来源路由标识、框架内部的状态标记、或者路由解析过程中的临时信息。但它并没有被框架做严格的权限限制,所以开发者完全可以把它当作跨路由传递自定义数据的「临时存储空间」来用,这也是官方默认允许的灵活用法。
小提示
- data绑定在transition实例上,只要转程流程没结束,数据就会一直存在,目标路由的各类钩子都能访问到
- 尽量避免使用和框架内部可能冲突的键名(不过一般框架不会在data里存放业务相关的键,不用过度担心)
内容的提问来源于stack exchange,提问作者Gabi L
相关产品推荐
相关产品推荐

