Angular materialize does';nt在角度6输入中工作
我将MaterializeCSS与angular 6结合使用,我的问题是,如果输入的标签从某些服务加载数据,则标签与输入的文本重叠 在他们的官方文档中,他们使用此代码修复此行为:Angular materialize does';nt在角度6输入中工作,angular,materialize,Angular,Materialize,我将MaterializeCSS与angular 6结合使用,我的问题是,如果输入的标签从某些服务加载数据,则标签与输入的文本重叠 在他们的官方文档中,他们使用此代码修复此行为: $(document).ready(function(){ $('select').formSelect(); }); 但是,如果我在ngOnInit()甚至ngAfterViewInit()中使用此代码,它将失败,并出现以下错误: 错误TS2339:类型上不存在属性“formSelect” “JQuer
$(document).ready(function(){
$('select').formSelect();
});
但是,如果我在ngOnInit()甚至ngAfterViewInit()中使用此代码,它将失败,并出现以下错误:
错误TS2339:类型上不存在属性“formSelect”
“JQuery”
我导入了Jquery,显然没有检测到具体化脚本。
我尝试从CDN和angular.json中导入脚本,如下所示:
"styles": [
"src/styles.css",
"node_modules/materialize-css/dist/css/materialize.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/materialize-css/dist/js/materialize.js"]
import * as $ from 'jquery';
我需要做什么来解决这个问题?看起来angular应用程序没有加载脚本,或者如果它正在加载脚本,那么调用函数还为时过早 这是因为您已经像这样导入了jquery:
"styles": [
"src/styles.css",
"node_modules/materialize-css/dist/css/materialize.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/materialize-css/dist/js/materialize.js"]
import * as $ from 'jquery';
请尝试以下方法:
$: any // declare dollar sign as a field variable
它应该工作的原因是,当您从
jquery
导入$
时,它在jquery方法中查找formSelect()
方法,但它是materialize.js
方法。当您将$
声明为any
时,您的代码立即成功编译,因为您已将jquery
和materialize.js
添加到应用程序运行时angular.json中的脚本中,它识别.formSelect()
关于$
你能告诉我什么是formSelect()
方法吗?从materialize的官方网站上,使用ECSS初始化select元素,尝试在materialize.js中搜索,但没有结果。