2016-09-26 1 views
0

ich nicht die folgende Funktion 2015benötigen diese Funktion vue-Router ECMA-Script übersetzt 2015

route: { 
     data: function() { 
      return this.$http.get('/api/posts?sort=title&order=1').then(
        posts=>{this.table.posts = posts.data} 
      ); 
     } 
    }, 

weil this ist nicht refering zum Fenster Objekt ich die

[vue-router] Uncaught error during transition: be.js:3660:7 

TypeError: undefined has no properties[Learn More]be.js:16572:13 
+0

Warum erwarten Sie, dass sich dies auf das Fensterobjekt bezieht? Du hast geschrieben, weil das nicht auf das Fenster Objekt bezieht, das ich bekomme. – nils

+0

Ich sage nicht, dass ich es zu schätzen, auf das Fensterobjekt verweisen, ich möchte nur die Funktion this.http verwenden, Lassen Sie mich es bearbeiten. – FerchoCarcho

+0

Ich bin mir nicht ganz sicher, ob ich deine Frage verstehe. Funktioniert Ihr Code, der nicht von ES2015 stammt, bisher und versuchen Sie, ihn nach ES2015 zu portieren? Oder denken Sie, dass Sie es in ES2015 konvertieren müssen, damit es funktioniert? – nils

Antwort

0
erhalten ECMAScript bekommen übersetzt

Sie können bestimmte Funktionen wie shorthand method names und etwas kompaktere Pfeilfunktionen verwenden, um mehr ES2015 zu sehen, aber es wird die Funktionalität nicht ändern:

route: { 
    data() { 
     return this.$http 
      .get('/api/posts?sort=title&order=1') 
      .then(posts => { this.table.posts = posts.data }); 
    } 
}, 

Sie konnten nicht die data Hook-Funktion mit einem Pfeil Funktionen ersetzen, weil this an den falschen Kontext (entweder auf window oder undefined) beziehen würde, da seine this würde durch seine umgebenden lexikalischen Gültigkeitsbereich definiert werden und konnte nicht überschrieben werden.

+0

Danke. Ich muss mehr lesen. – FerchoCarcho

+0

Wenn ich die Soultion als It benutze. Es gibt mir den vm.instance-Initialisierungsfehler. also musste ich es mit posts einschließen => {this.table.posts = posts.data} – FerchoCarcho

+0

Interessant, ich frage mich, warum das ist ... Ich habe den Code aktualisiert. – nils