实现中的formSelect()方法在角度6输入中不起作用

时间:2018-08-07 17:10:53

标签: angular materialize

我使用的是与CSS 6结合使用的实现化CSS,我的问题是输入的标签如果从某些服务加载数据,则该标签与输入的文本重叠。

在官方文档中,他们使用以下代码来解决此问题:

$(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"]

该如何解决?看起来是角度应用程序未加载脚本,或者如果它正在加载脚本,则调用该函数还为时过早。

1 个答案:

答案 0 :(得分:1)

那是因为您已经这样导入了jquery:

import * as $ from 'jquery';

尝试以下方法:

$: any // declare dollar sign as a field variable

它应该起作用的原因是,当您从$导入jquery时,它将在jquery方法中寻找formSelect()方法,但这是一个materialize.js方法。当您将$声明为any时,代码将成功编译,现在,因为您已在脚本中的脚本中添加了jquerymaterialize.js在应用程序运行中,strong> angular.json 可以识别.formSelect()上的$