3gwebtrain
3gwebtrain

Reputation: 15303

Pass value from `route` to template

I am trying to pass a value from route to template. But I am not able to get the result. how to pass the value from route to template.

here is my try:

my route.js :

import Ember from 'ember';

export default Ember.Route.extend({
  name:"SCB"
});

here is my hbs file :

<h1>My Name is : {{name}}</h1>

Live Twiddle

Upvotes: 0

Views: 954

Answers (2)

akonovalov
akonovalov

Reputation: 391

You need to set a variable in Controller:

export default Controller.extend({
  name:"SCB"
});

And then set it in Route:

this.set('controller.name', 'newName');

And in hbs you can access it like:

{{ name }}

Upvotes: 0

Jacob van Lingen
Jacob van Lingen

Reputation: 9567

The template is mapped to the controller, not the route. To accomplish this, use the setupController function:

import Ember from 'ember';

export default Ember.Route.extend({
    setupController(controller) {
        this._super(...arguments);
        controller.set('name', 'SCB');
    }
});

Another solution would be to use a controller:

import Ember from 'ember';

export default Ember.Controller.extend({
    name: 'SCB'
});

Upvotes: 3

Related Questions