ember.js “route.transitionTo”是否已弃用?

aurhwmvo  于 2023-01-13  发布在  其他
关注(0)|答案(3)|浏览(132)

Ember记录了一个警告,transitionTo已经被弃用,取而代之的是transitionToRoute。然而,ember目前有route.transitionTocontroller.transitionTo。只有controller.transitionTo在API和源代码中有弃用通知。
route.transitionTo被弃用的通知是一个bug,还是转换到this.controllerFor( routename ).transitionToRoute()的惯用方法。

回答:不反对

原来我有一个混合使用this.transitionTo,这是应该涉及的路线的唯一,但正在使用的控制器,这使得它更难注意到。

evrscar2

evrscar21#

从一个控制器,你应该使用controller.transitionToRoute(指定你想要转换一个路由)从一个路由,你应该使用route.transitionTo,这是有意义的,路由是隐含的,由于上下文。

bvuwiixz

bvuwiixz2#

transitionTo应该只在controller中抛出一个警告,您很可能在某个控制器中使用了transitionTo
从路线内:

this.transitionTo('someRoute');

从控制器内部:

this.transtionToRoute('someRoute');

来源:(http://github.com/emberjs/website/pull/964

olhwl3o2

olhwl3o23#

是的,路由中的this.transitionTo已被弃用。
参见:

  • RFC
  • 正式弃用通知

现代的替代方案是:

import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default class TodoRoute extends Route {
  @service router;

  beforeModel() {
    this.router.transitionTo('todo');
  }
}

相关问题