Ich mache mit Laravel und Vue ein Warenkorbsystem. Wenn ich einen Artikel in den Warenkorb lege, wird eine Bestätigungsmeldung angezeigt, indem eine Vue-Variable umgeschaltet wird, die von einem v-if überwacht wird:
<div class="alert alert-success" v-if="basketAddSuccess" transition="expand">Added to the basket</div>
Und der JS:
addToBasket: function(){
item = this.product;
this.$http.post('/api/buy/addToBasket', item);
this.basketAddSuccess = true;
}
(Und ja, ich werde dies in Kürze in einem Dann-Fang hinzufügen).
Dies funktioniert gut und die Meldung wird angezeigt. Ich möchte jedoch, dass die Nachricht nach einer bestimmten Zeit wieder verschwindet, beispielsweise nach einigen Sekunden. Wie kann ich das mit Vue machen? Ich habe es versucht, setTimeOutaber Vue scheint es nicht zu mögen und sagt, es sei undefiniert.
EDIT: Ich habe falsch geschrieben setTimeoutwie ein Idiot. Es funktioniert jedoch immer noch nicht:
Meine Funktion ist jetzt:
addToBasket: function(){
item = this.photo;
this.$http.post('/api/buy/addToBasket', item);
this.basketAddSuccess = true;
setTimeout(function(){
this.basketAddSuccess = false;
}, 2000);
}
setTimeout(()=>{ this.basketAddSuccess = false; }, 2000);