我正在尝试使用typeahead.js在Angular2应用程序中实现typeahead。在typescript文件中,我添加了以下导入段。
import initTypeahead = require("../../../assets/js/init/dashboard.js");
dashboard.d.ts
declare function initTypeahead(data:any,id:any): void;
export = initTypeahead(data,id);
dashboard.js
if ('undefined' !== typeof module) {
module.exports = function initTypeahead(data, element) {
console.log(data);
console.log(element);
var _values = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: data
});
_values.initialize();
var elt = $(element);
elt.tagsinput({
itemValue: 'code',
itemText: 'value',
typeaheadjs: {
name: '_values',
displayKey: 'value',
source: _values.ttAdapter()
}
});
}
}
然后在打字稿中添加以下行。
private getCities(): void {
this.componentsService.getCriteriaValues(this.product, "city").subscribe(res => {
initTypeahead(res.returnData, '#city'); // error at this line
});
}
以下错误显示在 ng服务
上Supplied parameters do not match any signature of call target.
非常感谢任何建议。
谢谢
答案 0 :(得分:1)
如果您使用Angular-CLI:
<强>角cli.json:强>
"scripts": [
"assets/js/init/dashboard.js"
],
您正在使用它的位置:
import '../../../assets/js/init/dashboard.js';
declare function initTypeahead(data:any,id:any): void;
首先需要从angular-cli.json中加载库,然后您可以将该代码实际导入到组件中,以便使用它的方法,变量等。