1

どこかに見つけるための実例はありますか?Typeahead はうまく機能していますが、Bloodhound をそれに接続しようとすると、常にエラーが発生します。

キャッチされていない TypeError: 未定義のプロパティ 'tokenizers' を読み取ることができません

私の Backbone-main.js では、

path: {..., 

        typeahead: 'libs/typeahead.jquery.min',
        bloodhound: 'libs/bloodhound.min',
}

shim: { ..., 
            'typeahead': {
                'deps': ['jquery'],
                'exports': 'jquery' // Make sure the noconflict configuration of jquery doesn't break this extension
            },
            'bloodhound':{
                'deps': ['jquery'],
                'exports': 'jquery' // Make sure the noconflict configuration of jquery doesn't break this extension
            },

}

そして私の Backbone.view で私は定義します

define(['backbone', 'typeahead', 'bloodhound', '../models/searchableDocument', '../collections/searchableDocuments', 'text!./asset_footer.html'],
function(Backbone, Typeahead, Bloodhound, SearchableDocument, SearchableDocuments, footerTmpl) { ...

//.../initialize/...
var docHound = new Bloodhound({
                name: 'documents',
                local: this.allDocuments.toJSON(),
                datumTokenizer: function(doc) { return Bloodhound.tokenizers.whitespace(doc.name); },
                queryTokenizer: Bloodhound.tokenizers.whitespace

            });
            docHound.initialize();
...

また、システム構造に Bootstrap (2.3.2) を含めたので、使用して競合の可能性を回避しようとしました。

...
var DocHound = Bloodhound.noConflict();
            var docHound = new DocHound({
...

しかし、これは単にエラーをスローします

Uncaught TypeError: 未定義のメソッド 'noConflict' を呼び出せません

つまり、Bloodhound-Clas にまったく「到達」していないように見えます... 何かヒントはありますか? サンクス!

4

1 に答える 1

1

同じ問題があり、Bloodhound をエクスポートとして追加する必要がありました。

    "bloodhound": {
        deps: ["jquery"],
        exports: "Bloodhound"
    }

チッ!

于 2014-04-08T17:31:22.287 に答える