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 回答