我在Angular应用程序的源文件夹(即/src/assets/inlineedit.js)下的javascript文件中编写了一个自定义查询功能。
这是文件的内容。
$.fn.inlineEdit = function(replaceWith, connectWith) {
$(this).hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
$(this).click(function() {
var elem = $(this);
elem.hide();
elem.after(replaceWith);
replaceWith.focus();
replaceWith.blur(function() {
if ($(this).val() != "") {
connectWith.val($(this).val()).change();
elem.text($(this).val());
}
$(this).remove();
elem.show();
});
});
};
现在,我想在Angular mycomponent.ts文件中调用此函数,其内容如下:
import { Component, ViewChild, ElementRef } from '@angular/core';
@Component({
selector: 'app-pivotgrid',
templateUrl: './mycomponent.component.html',
styleUrls: ['./mycomponent.component.css']
})
export class mycomponent {
OnCellclick (event): void
{
var replaceWith = $('<input name="temp" type="text" />'),
connectWith = $('input[name="hiddenField"]');
$('#innerDiv').inlineEdit(replaceWith, connectWith);
}
}
但是,我遇到了
这样的错误类型'JQuery'不存在属性'inlineEdit'
如何在Angular组件中调用jQuery函数?
答案 0 :(得分:1)
您可以像这样使用<any>
类型转换:
(<any>$('#innerDiv')).inlineEdit(replaceWith, connectWith);
甚至更好:
首先从@types/jquery
安装npm
npm install @types/jquery --save-dev
然后添加本地类型文件并在其中声明您的插件功能
interface JQuery {
<your-plugin-name>(options?: any): any;
}
然后您就可以使用插件了。
来源:https://medium.com/all-is-web/angular-5-using-jquery-plugins-5edf4e642969