Ember.js - access to the global request parameter from a child route

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

The localization parameter is stored in the Global request parameter in the application route :

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

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

App.TranslateRoute = Ember.Route.extend({
    model: function(params){
         params.localSelected **NOT AVAILABLE**
    }
});
+4
source share
1 answer

Finally found a solution by setting a global variable every time the request updates the parameters.

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 since the controller is initialized to the end, you also need to:

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

Then, when you need to know the value of the localization request parameter, you can simply go:

App.get('localSelected');
+3
source

All Articles