我正在使用backbone,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 repo Github
答案 0 :(得分:2)
Typeahead不兼容AMD,您需要为其定义shim配置。它会是这样的:
requirejs.config({
// ...
shim: {
"typeahead": {
deps: ['jquery'],
exports: 'jQuery.fn.typeahead'
}
}
});
define(['jquery', 'typeahead'], function ($, youCanIgnoreThis) {
var opts = {
// ...
};
$("#SearchProduct").typeahead(opts);
})
阅读the documentation了解详情。