Skip to content

Pod routable component ignored if next to route.js in same directory #12154

Description

@mdehoog

I'm using both pods and routable components (thanks to PR #11939) in my application. I would love for the route.js definition for each routable component to sit next to the component itself, just like you can do with controllers. For example, I structure my routable component home as follows:

app
    pods
        components
            home
                component.js
                route.js
                template.hbs

I then map the route:

this.route('components/home', {path: '/'});

In route.js I render the home component using renderTemplate:

export default Ember.Route.extend({
  renderTemplate: function () {
    this.render({component: 'home'});
  }
});

However, the component object is never actually created, as the conditional (

if (!template && !ViewClass && Component && isGlimmerComponent) {
) is not entered because template is defined. This is because the route and the template have the same path. The template is rendered, but without using component.js.

I would have thought that, if component is defined in the options passed to the render method AND that component exists and satisfies the requirements (is a glimmer component), it should prefer the component and not fallback to the template.

I suggest that !template is removed from the conditional statement, or at least ignored if component is defined in the options and the component matches routable component requirements.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions