admin管理员组

文章数量:1332865

2023 UPDATE

route.transitionTo was deprecated in favor of using the router service. See the answer from Andrey below for links.


Original POST and Answer

Ember logs a warning that transitionTo has been deprecated in favor of transitionToRoute. However, ember currently has route.transitionTo and controller.transitionTo. Only controller.transitionTo has a deprecation notice on the API and in the source code.

Is the notice that route.transitionTo is deprecated a bug, or is the idiomatic method of transitioning changing to this.controllerFor( routename ).transitionToRoute().

ANSWER: NOT DEPRECATED

Turned out I had a mixing using this.transitionTo that was supposed to be involved in route's only but was getting used in a controller, which made it harder to notice.

2023 UPDATE

route.transitionTo was deprecated in favor of using the router service. See the answer from Andrey below for links.


Original POST and Answer

Ember logs a warning that transitionTo has been deprecated in favor of transitionToRoute. However, ember currently has route.transitionTo and controller.transitionTo. Only controller.transitionTo has a deprecation notice on the API and in the source code.

Is the notice that route.transitionTo is deprecated a bug, or is the idiomatic method of transitioning changing to this.controllerFor( routename ).transitionToRoute().

ANSWER: NOT DEPRECATED

Turned out I had a mixing using this.transitionTo that was supposed to be involved in route's only but was getting used in a controller, which made it harder to notice.

Share Improve this question edited Apr 12, 2023 at 7:18 runspired asked Dec 17, 2013 at 21:43 runspiredrunspired 2,6931 gold badge21 silver badges24 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 4

from a controller you should use controller.transitionToRoute (specifying that you want to transition a route) from a route you should use route.transitionTo and it makes sense that route is implied due to the context.

Yes, this.transitionTo in a route has been deprecated.

See:

  • RFC
  • Official deprecation notice

The modern alternative is:

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');
  }
}

transitionTo should only throw a warning in a controller, You're most probably using transitionTo in some controller somewhere.

From within routes:

this.transitionTo('someRoute');

From within controllers:

this.transtionToRoute('someRoute');

Source: (http://github./emberjs/website/pull/964)

本文标签: javascriptIs routetransitionTo deprecatedStack Overflow