I do not believe closure-actions are working with pure action helper for routes. The only thing that seems to be working is actions in element space. To understand the difference between two action types please read this excellent blog post.
What I mean is; if you declare your action as follows:
<button onclick={{action 'dummyAction'}}>Push</button> this and define your action within the route; an error is raised indicating
EmberError {stack: "Error: Assertion Failed: An action named 'dummyAct…/[email protected]/dist/ember.debug.js:15626:28)", description: undefined, fileName: undefined, lineNumber: undefined, message: "Assertion Failed: An action named 'dummyAction' was not found in (generated index controller)"
However if you use actions in element space instead of closure actions; what I means is:
<button {{action 'dummyAction'}}>Push</button> seems to be working starting from Ember 3.1. However; you are right about it is not being properly documented in Ember release notes or else where.
See the twiddle I prepared for this question as a summary of what I explained above. To sum up; closure actions still seem to be not working for routes if you do not use route-action-helper.
Regarding your question about usage of controllers; see what Ember guide recommends:
- We want to pass down actions or variables to share with a Route’s child components
- We have a computed property that depends on the results of the model hook
- We need to support query parameters
They recommend defining actions within controllers; see also the warning mentioned in ember-route-helper addon's github page. They say
You probably don't need to use this addon. Most of the use cases you'd use this addon for are perfectly achievable without this addon. Read the following blog post for more info: Ember Best Practices: What are controllers good for?
See Ember guide for version 2.2. which says:
Controllers are very much like components, so much so that in future
versions of Ember, controllers will be replaced entirely with
components. At the moment, components cannot be routed to, but when
this changes, it will be recommended to replace all controllers with
components.
Because of this, modern Ember applications don't often use
controllers.
However; in the future versions they decided to keep controllers as one of the core constructs of the framework. Thus; I would recommend to stick up with the latest guide and define actions within controllers rather than routes now and not use ember-route-action-helper addon anymore.