Hoffe jemand kann mir helfen! Ich habe eine Direktive gemacht, die das Jasny Bootstrap Plugin genauer beschreibt als die Eingabemaske und alles geht gut!Vue js Filter auf V-Modell in einem Eingabefeld anwenden
Jetzt habe ich einen benutzerdefinierten Filter unterstützt von Moment, um das Datumsfeld zu formatieren!
Das Datumsformat, das ich von meiner Backend-Anwendung erhalte, ist YYY-MM-DD und ich muss in der Ansicht als DD/MM/YYYY anzeigen ... Ich habe versucht v-model="date | myDate"
aber es hat nicht richtig funktioniert!
JS
Vue.directive('input-mask', {
params: ['mask'],
bind: function() {
$(this.el).inputmask({
mask: this.params.mask
});
},
});
Vue.filter('my-date', function(value, formatString) {
if (value != undefined)
return '';
if (formatString != undefined)
return moment(value).format(formatString);
return moment(value).format('DD/MM/YYYY');
});
var vm = new Vue({
el: 'body',
data: {
date: '2015-06-26',
}
});
HTML
<label>Date</label>
<input type="text" class="form-control" v-input-mask mask="99/99/9999" v-model="date">
<p>{{ date | myDate 'dd/mm/yyyy' }}</p>
Es ist die JSBin, wenn jemand interessiert!
Vielen Dank im Voraus!
EDIT: Erklären besser, was ich = erwarten)
Wenn die Seite zuerst die Eingänge laden erhält den Wert von 2015.06.26 und ich würde diesen Wert als DD/MM/YYYY zeigen, wie so 26/06/2015! Es funktioniert nur, nachdem ich etwas zu tippen begonnen habe!
"Es hat nicht richtig funktioniert" ist nicht beschreibend genug. Bitte erklären * wie * es nicht richtig funktioniert. Was haben Sie erwartet und was hat es getan? –
Sorry @MattJohnson! Habe einfach eine bessere Erklärung auf der Unterseite hinzugefügt! Sehen Sie, wenn Sie verstehen, bitte! –
Beachten Sie, dass d/m/y und m/d/y mehrdeutig sind, viel besser, den Monatsnamen wie '10-Apr-2016' zu verwenden. – RobG