2016-03-31 6 views
0

Ich habe einen Controller mit Eigenschaft:Ember Datetime in der URL

vFrom: window.moment.utc().format('YYYY-MM-DD'), 

Ich verwende diese Eigenschaft in einer Route innerhalb queryParams von ember-cli-pagination

vFrom:{ 
    refreshModel: true 
}, 

ich dieses Datum über eine ember-pikaday ändern , Setze ich das Initdatum im Controller vFrom: window.moment.utc().format('YYYY-MM-DD') und verwende es dann in der Datepicker - Komponente:

{{pikaday-input useUTC=true value=vFrom class="form-control"}} 

Welches dann Modellaktualisierung bei Datumsänderung auslöst (was ich will).

Das Problem ist, dass ich am Ende mit einer Datum-Variable in der URL ?vFrom=Fri Mar 25 2016 01%3A00%3A00 GMT%2B0100 (CET), die nicht in allen Browsern funktioniert (und Moment warnt mich darüber in der Konsole) am Ende und bricht schließlich meine App.

Wie kann ich das Datumsformat ändern, das in der URL endet?

Vielen Dank!

Antwort

0

Ich habe es mit den Beobachtern gelöst:

datef: Ember.observer('vFrom', function(){ 
    var fromD = this.get('vFrom'); 
    if(fromD instanceof Date) 
    { 
     this.set('vFrom', window.moment.utc(fromD).format('YYYY-MM-DD')); 
    } 
    }), 
    datet: Ember.observer('vTo', function(){ 
    var fromD = this.get('vTo'); 
    if(fromD instanceof Date) 
    { 
     this.set('vTo', window.moment.utc(fromD).format('YYYY-MM-DD')); 
    } 
    }) 
0

Eine andere Lösung, die ich denke, ist besser als Beobachter mit.

{{pikaday-input useUTC=true value=datef class="form-control"}}

queryParams: ['vFrom'], 
datef: Ember.computed('vFrom', { 
    get() { 
     return moment(this.get('vFrom')).format(); 
    }, 
    set(key, value) { 
     this.set('vFrom', moment(value).format('YYYY-MM-DD')); 
     return value; 
    } 
})