2016-05-11 6 views
3

私はAJAXを使って簡単なフォームを提出しようとしています。私はタスクランナーとしてJSファイルをコンパイルするためにgruntを使用しています。JSHint - ^「簡潔なメソッド」はES6で利用可能です

ここまでは私が今まで行ったことです。

$("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); 

    }) 
}); 

タスクが

$( "#ユーザー名")。valを()、 ^ '簡潔な方法' を実行しようとしているとき、私の疑問は、JShintエラーについてです(ES6で提供されていますesnextオプションを使用)またはMozilla JS拡張(mozを使用)ここで

まさにそれが意味何私のgruntfile(jshintタスク)

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'], 
     } 
    } 

のですか?そして、どうすればこのエラーを解決できますか?

ありがとうございます!

答えて

8

formData体は、名前が欠落している:

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

リテラル短手オブジェクトの任意の種類、その算出された名前またはインライン法である、ES6機能です。

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

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

は、あなたがそうのように、オブジェクトリテラルのメソッドを宣言することができます:

あなたはほぼ確実にだけ値がすでに取得しているに名前を追加する必要があります

パーサは、あなたのオブジェクトが含まれているどう思うかであるように思われ

(詳細はthis blog postを参照してください)。

+0

あなたは正しいです!私は名前を忘れました> _>ありがとう! – vbotio

+0

'$'は正当な識別子なので、特に悪いことに実行しているので、 '$(...)'はメソッド宣言のように見えます。 – ssube

関連する問題