Paul
Paul

Reputation: 1220

Ember.js - Access global query param from child route

I would like to access a global query param in a nested route (child route).

The localisation setting is stored in a Global Query Param on the Application Route:

App.ApplicationController = Ember.Controller.extend({
    queryParams: ['localSelected']
});

Now I would like to access that value in my App.IndexRoute

App.TranslateRoute = Ember.Route.extend({
    model: function(params){
         params.localSelected **NOT AVAILABLE**
    }
});

Upvotes: 4

Views: 812

Answers (1)

Paul
Paul

Reputation: 1220

Finally found a solution by setting a global variable every time the query params updates.

In the Application Controller

App.ApplicationController = Ember.Controller.extend({
    queryParams: ['localSelected'],
    localSelectedOberver: function(){
        App.set('localSelected', this.get('localSelected')); 
    }.observes('localSelected').on('init'),
    localSelected: "en"
});

And because the controller initializes to late, you also need:

App.ApplicationRoute = Ember.Route.extend({
        model: function(params){
            App.set('localSelected', params.localSelected)
        }
    )}
})

Then whenever you need to know the localisation query param value you can just go:

App.get('localSelected');

Upvotes: 3

Related Questions