2017-01-30 4 views
0

genannt Ich mag eine unvollständige URL zu einer vollständigen korrekten URL umleiten:Ember.Route - Modell Haken zweimal statt einem

http://localhost/product/12/a-single-pr -> http://localhost/product/12/a-single-product-name 

Das Problem ist, dass das Modell Haken zweimal statt einem genannt wird, zwei identische Anforderungen zum Abrufen eines einzelnen Objekts stellen. Irgendwelche Hinweise?

Routen/product.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    afterModel(model, transition) { 
    let formatted = model.get('formatted'); 

    if (transition.params.product.formatted !== formatted) { 
     let path = '/product/' + model.id + '/' + formatted; 
     this.replaceWith(path, model); 
    } 
    }, 
    model(params) { 
    return this.get('store').findRecord('product', params.product_id); 
    } 
}); 

router.js

... 

Router.map(function() { 
    this.route('product', {path: '/product/:product_id/*formatted'}); 
}); 

... 

Antwort

0

Ember wie erwartet funktioniert.

Sie treffen die Produktroute, rufen das Modell ab und leiten es im afterModel zurück zur Produktroute, wodurch der Routenlebenszyklus erneut gestartet wird, dh das Modell wird erneut abgerufen und anschließend afterModel erneut aufgerufen.

Eine andere Möglichkeit, das Problem anzugehen, wäre, die URL in afterModel zu ersetzen, anstatt auf die gleiche Route umzuleiten.

Sehen Sie diese Antwort Stackoverflow, um das zu erreichen: https://stackoverflow.com/a/3503206/2891906

Verwandte Themen