How to access query parameters from route in Ember 1.7

后端 未结 5 453
傲寒
傲寒 2020-12-16 12:08

In 1.7 Ember should support Query Parameters. I have no problems using them in controller but I\'d like to access them in Route, ideally in beforeModel hook but model hook w

相关标签:
5条回答
  • 2020-12-16 12:22

    By specifying the query params in the controller, params will contain them automatically

    ApplicationController = Ember.Controller.extend({
      queryParams: ['test'],
      test: null
    });
    
    0 讨论(0)
  • 2020-12-16 12:22

    In the latest version of ember (2.12 at the time of writing this answer), queryParams can be accessed in the model hook as follows:

    import Ember from 'ember';
    
    export default Ember.Route.extend({
        queryParams: {
            test: ''
        },
        model(params) {
            console.log(params.test);
        },
    });
    

    Observe that now both dynamic segment and queryParams are accessible via the params object. Since params is not available in the beforeModel hook, this solution works on when you have to access the queryParams in the model hook.

    0 讨论(0)
  • 2020-12-16 12:27

    In latest ember version you can get the value in Route as

    import Ember from 'ember';
    export default Ember.Route.extend({
      beforeModel(params){ 
          console.log(params.queryParams.test); //if the parameter contains test as the key
      }
    });
    

    This works only if the locationType is auto in your environment.js file.

    0 讨论(0)
  • 2020-12-16 12:28

    If you want to access in didTransition action,

    didTransition: (queryParams) ->
      console.log(@get('queryParams'))
    
    0 讨论(0)
  • 2020-12-16 12:42

    Pretty sure it's a bug, but you can access them in the meantime via the transition object:

    App.ApplicationRoute = Em.Route.extend({
       beforeModel: function(transition){
           console.log(transition.queryParams.test);
       }
    }
    
    0 讨论(0)
提交回复
热议问题