1

Typehead を使用しようとしていて、JSON フォーマットに苦労しています (私には制御できません)。

{ name="Long Island", type="2", id="1234"}

ここに私のJSがあります

$autocomplete.typeahead({
name: 'location',
remote: {
    url: 'http://pathtomysite.com/%QUERY?',
    dataType: 'jsonp',
    filter: function (parsedResponse) {
        console.log(parsedResponse);
        return parsedResponse;
    }
},
template: [
    '<p class="repo-name">{{name}}</p>',
    '<p class="repo-description">{{id}}</p>'
].join(''),
engine: Hogan

});

したがって、リクエストは機能し、コンソールにオブジェクトが返されますが、先行入力の視覚的なドロップダウンには「未定義」と表示されます。

それで、データムで何かをする必要があると思いますか?

Hogan テンプレートを使用してみましたが、ドロップダウンに何も表示されません。

JSONP がこの問題かどうかわかりませんか? リクエストには多くの文字が追加されています。JS タブを参照してください http://jsbin.com/aPOZohi/1/edit

そうそう、どこが間違っているのですか?

データが返されたら、別のフォーマットに関する質問があります:)

4

2 に答える 2

1

@Xeevisの答えはほぼ正しいです。

まず、「前に追加される多くの文字」は、クロスドメイン リクエストを実行するときに内部的に JSONP を実行する jQuery の方法です。

2 番目: ジービスの言うとおりです。問題は ですがvalueKey、それだけではありませんvalueKey。応答はオブジェクトの配列である必要があり、それぞれが で指定された名前のメンバーを含んでいますvalueKey。に設定valueKey"name"ますが、配列も返します。

filter: function (parsedResponse) {
    console.log(parsedResponse);
    return parsedResponse.locations;
}
于 2013-10-31T14:34:09.853 に答える