1

私はバックボーンを使用してアプリケーションを構築しています.requirejsとyeoman.

Twitterのtypeaheadjsを使用していて、このエラーがランダムに発生しています! ほとんどの場合は機能しますが、エラーをスローすることなく先行入力が機能しない場合があります。そして、ビルド後にタイプアヘッドが機能しません(うなり声)これは、タイプアヘッドを呼び出すページです

define([
    'jquery',
    'underscore',
    'backbone',
    'templates',
    ...
    'typeahead',
    ...
    ], function ( $, _, Backbone, JST, a, b, typeahead, c, d) {

これは、ビューのrender()内でTypeaheadを初期化する場所です

this.collection.fetch({
    success: function (data) {
        $('#SerachProduct').typeahead({
            name: 'abc',
            valueKey: 'name',
            local: data.toJSON(),
            template: JST['app/scripts/templates/typeahead.ejs']
        });
    },
    error: fun() {..
    }
}

ここに github レポGithubがあります

4

1 に答える 1

2

Typeahead は AMD 互換ではありません。そのためのshim構成を定義する必要があります。次のようになります。

requirejs.config({
  // ...
  shim: {
    "typeahead": {
      deps: ['jquery'],
      exports: 'jQuery.fn.typeahead'
    }
  }
});

define(['jquery', 'typeahead'], function ($, youCanIgnoreThis) {
  var opts = {
    // ...
  };
  $("#SearchProduct").typeahead(opts);
})

詳細については、ドキュメントを参照してください。

于 2013-10-03T16:05:53.297 に答える