2016-04-07 14 views
1

Ich habe meine Router.js wie folgt definiert; JetztEmber kann nicht auf dynamische Segmentparameter zugreifen

this.route('step1', function() { 
     this.route('step2dynamic', {path: '/:dynamic_step_name'}, function(){ 
      this.route('step3a');    
      this.route('step3b'); 
     }); 
}); 

in einem meinem Weg, ich

this.transitionTo('step1.step2dynamic.step3a', 'step2DynamicValue'); 

In meinen Routen \ schritt1 \ step2dynamic \ step3a.js, habe ich das Modell Haken definiert als

model: function(params) { 
    // Why is params not contain the passed parameter value ? 
} 

Hier Ich bekomme nicht die params.dynamic_step_name. Es ist ein leeres Objekt. Was mache ich hier falsch?

+0

Nur ein Update..Ich habe auch versucht this.transitionTo ('step1.step2dynamic.step3a', {dynamic_step_name: 'step2DynamicValue'}); Funktioniert immer noch nicht – testndtv

+0

Dies passiert höchstwahrscheinlich, weil Ihr Modell Hook mit Params höher leben sollte, auf der Route mit Params. Das Modell wird weitergegeben, aber die Parameter nicht. – LukeP

Antwort

1

Es wird nur in den Parametern des Modell-Hooks angezeigt, der zu der Route gehört, die das dynamische Segment enthält.

Sie sollten den Parameter in Ihrer Route von Schritt 3 nicht benötigen, da Ihre Route von Schritt 2 jedes Abrufen von Modelldaten unter Verwendung des dynamischen Segments verarbeiten sollte. Aber, wenn aus irgendeinem Grund müssen Sie in Schritt 3 Route verweisen, wäre es in der transition in beforeModel und model übergeben Sie zugänglich sein:

// routes/step1/step2dynamic/step3a.js 

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model (params, transition) { 
    // should log { dynamic_step_name: "step2DynamicValue" } 
    console.log(transition.params["step1.step2dynamic"]); 
    } 
}); 

Wieder obwohl, wenn Sie es verwenden zu holen Daten, sollte es in der Route 2 Route behandelt werden.

Verwandte Themen