Ich habe diese Vue-Funktion, wo es im Grunde zwei Methoden gibt. Die erste postStatus
wird verwendet, um einen Post zu speichern, unmittelbar nachdem der Benutzer auf die Schaltfläche zum Speichern geklickt hat, und der andere getPosts
wird verwendet, um alle früheren Posts dieses Benutzers aus der Datenbank abzurufen. HierVue js Bereit-Funktion wird nicht ausgelöst
ist die vue.js, wo es einen Ajax-Aufruf an einen Controller (in Laravel 5,3)
$(document).ready(function() {
var csrf_token = $('meta[name="csrf-token"]').attr('content');
/*Event handling within vue*/
//when we actually submit the form, we want to catch the action
new Vue({
el : '#timeline',
data : {
post : '',
posts : [],
token : csrf_token,
limit : 20,
},
methods : {
postStatus : function (e) {
e.preventDefault();
//console.log('Posted: '+this.post+ '. Token: '+this.token);
var request = $.ajax({
url : '/posts',
method : "POST",
dataType : 'json',
data : {
'body' : this.post,
'_token': this.token,
}
}).done(function (data) {
//console.log('Data saved successfully. Response: '+data);
this.post = '';
this.posts.unshift(data); //Push it to the top of the array and pass the data that we get back
}.bind(this));/*http://stackoverflow.com/a/26479602/1883256 and http://stackoverflow.com/a/39945594/1883256 */
/*request.done(function(msg) {
console.log('The tweet has been saved: '+msg+'. Outside ...');
//$("#log").html(msg);
});*/
request.fail(function(jqXHR, textStatus) {
console.log("Request failed: " + textStatus);
});
},
getPosts : function() {
//Ajax request to retrieve all posts
$.ajax({
url : '/posts',
method : "GET",
dataType : 'json',
data : {
limit : this.limit,
}
}).done(function (data) {
this.posts = data.posts;
}.bind(this));
}
},
//the following will be run when everything is booted up
ready : function() {
console.log('Attempting to get the previous posts ...');
this.getPosts();
}
});
});
Bisher ist die erste Methode postStatus
funktioniert gut.
Der zweite soll direkt bei der Ready-Funktion angerufen oder abgefeuert werden, es passiert jedoch nichts. Ich bekomme nicht einmal die console.log Nachricht Attempting to get the previous posts ...
. Es scheint, dass es nie gefeuert wurde.
Was ist das Problem? Wie repariere ich es?
Anmerkungen: Ich bin mit jQuery 3.1.1, 2.0.1 Vue.js
Ja, das hat den Trick gemacht! Danke für Ihre zusätzlichen Notizen und nützliche Links :) – Pathros
[_vue-resource_ wurde aus der offiziellen Empfehlungsliste zugunsten von ** axios ** entfernt.] (Https://medium.com/the-vue-point/retiring-vue -resource-871a82880af4) –
Danke @EmileBergeron für das Aufzeigen dieser. Ja, wir alle in den 'Vue.js'-Entwicklerkreisen kennen diese Veränderung und haben sich dafür entschieden, aber ich habe diese spezielle Antwort für eine sehr lange Zeit vergessen. Ich habe die Antwort bearbeitet, um zusätzliche Notizen hinzuzufügen, so dass zukünftige Leser nicht mehr Zeit brauchen werden, um dies selbst zu entdecken. Danke noch einmal! – Mani