2016-05-11 16 views
3

Ich versuche, ein einfaches Formular mit AJAX einzureichen. Ich benutze Grunt als Task Runner, um meine JS-Dateien zu kompilieren und so.JSHint -^'prägnante Methoden' ist in ES6 verfügbar

Hier ist, was ich bis jetzt gemacht habe.

$("form").submit(function(event) { 
    event.preventDefault(); 

    var formData = { 
     $("#username").val(), 
     $("#password").val() 
    }; 

    $.ajax({ 
     url: 'xxx', 
     type: 'POST', 
     dataType: 'json', 
     data: formData, 
     encode: true 
    }) 
    .done(function(data) { 
     console.log(data); 

    }) 
}); 

Mein Zweifel ist über einen JShint Fehler, wenn die Aufgabe über ist

$ ("# username"). Val() laufen, ^ 'prägnante Methoden' ist in ES6 verfügbar (Verwenden Sie die Esnext-Option) oder Mozilla JS-Erweiterungen (Mozz verwenden).

Hier ist meine gruntfile (jshint Aufgabe)

jshint: { 
     ignore_warning: { 
      options: { 
       '-W099': true, 
       /*'-W041': true,*/ 
       '-W044': true, 
       '-W033': true, 
       '-W043': true, 
       '-W049': true, 
       '-W004': true, 
       '-W065': true, 
       '-W083': true, // Corrigir futuramente 
      }, 
      src: ['public/_assets/src/js/modules/*.js'], 
     } 
    } 

Was genau bedeutet es bedeutet? Und wie kann ich diesen Fehler beheben?

Danke!

Antwort

8

Der formData Körper die Namen fehlen:

var formData = { 
    $("#username").val(), 
    $("#password").val() 
}; 

Jede Art von Kurz Hand Objektliteral, seien es berechnete Namen oder Inline-Verfahren ist eine ES6 Funktion.

Sie mit ziemlicher Sicherheit müssen nur die Namen hinzufügen, um die Werte, die Sie bereits erhalten:

var formData = { 
    username: $("#username").val(), 
    password: $("#password").val() 
}; 

Mit ES6, Sie in der Lage sind Objektliteral zu erklären Methoden, etwa so:

var formDataFetch = { 
    username() { 
    return $("#username").val() 
    } 
}; 

(this blog post für weitere Details)

, die Ihr Objekt enthält zu sein scheint, was der Parser denkt.

+0

Sie haben Recht! Ich habe die Namen vergessen> Danke! – vbotio

+0

Sie kommen besonders schlecht damit klar, weil '$' ein legaler Bezeichner ist, also '$ (...) 'sieht genauso aus wie eine Methodendeklaration. – ssube