3

ここで私の最初の質問。

ajax リクエストに省略形関数を使用する際に問題が発生した人はいますか?

これは機能します:

('#book').typeahead({
    source: function(typeahead, query){
        return $.ajax({
            url: "/book/autocompleteBooks",
            type: "GET",
            dataType: "JSON",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property: "title",
    onselect: onSelectBook
});

しかし、次の 2 つの機能はいずれも機能しません。

('#book').typeahead({
    source: function(typeahead, query){
        return $.get({
            url: "/book/autocompleteBooks",
            dataType: "JSON",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property: "title",
    onselect: onSelectBook
});

('#book').typeahead({
    source: function(typeahead, query){
        return $.getJSON({
            url: "/book/autocompleteBooks",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property : "title",
    onselect: onSelectBook
});

もう1つは、との置き換えも機能urlcreateLinkないことです。

url: "/book/autocompleteBooks"

url: "${createLink(controller: 'book', action: 'autocompleteBooks')}"

私はむしろ短縮関数を使用して、コードを読みやすくし、基本的に美学のためにコードを作成したいと思います:)

4

3 に答える 3

8

の構造$.get()は次のようになります。

$.get(
  "/book/autocompleteBooks",     // url
  {queryString: query},          // data
  function(data) {               // success
    // code
  },
  'json'                         // dataType
);

そして$.getJSON()次のとおりです。

$.getJSON(
     "/book/autocompleteBooks",   // url
     {queryString: query},        // data
     function(results){           // success
       // code
     }
);

$.get()$.getJSON( )の詳細を読む

于 2012-09-15T08:15:03.033 に答える
0

使用しようとしている 2 つの簡易メソッドのドキュメントをお読みください。オプションのオブジェクトを最初のパラメーターとして受け入れません。

于 2012-09-15T08:15:56.387 に答える
0

$.get() id $.ajax() メソッドの短縮形。しかし、実際には $.get の syantax は次のようになります。

$.get('ajax/test.html', function(data) {
$('.result').html(data);
alert('ロードが実行されました'); });

$.ajax() が呼び出される場所

$.ajax({
URL: URL,
データ: データ,
成功: 成功, データタイプ: データタイプ });

$.get() の詳細については、http: //api.jquery.com/jQuery.get/ を参照してください。

于 2012-09-15T08:16:15.593 に答える