【问题标题】:Property 'mask' does not exist on type 'JQuery<HTMLElement>'JQuery<HTMLElement> 类型上不存在属性'掩码'
【发布时间】:2020-04-08 22:32:29
【问题描述】:

我最近试图在我的 Angular 项目中使用 jquery 掩码,所以我在我的项目中安装了:npm i jquery-mask-plugin,所以在我的 TS 文件中我写道:

ngOnInit() {
      $('.date').mask('11/11/1111');
      $('.time').mask('00:00:00');
      $('.date_time').mask('00/00/0000 00:00:00');
      $('.cep').mask('00000-000');
      $('.phone').mask('0000-0000');
      $('.phone_with_ddd').mask('(00) 0000-0000');
      $('.phone_us').mask('(000) 000-0000');
      $('.mixed').mask('AAA 000-S0S');
      $('.cpf').mask('000.000.000-00', {reverse: true});
      $('.money').mask('000.000.000.000.000,00', {reverse: true});
  }

就像在主站点上一样,但我更喜欢使用 ngOnInit() 而不是 $(document).ready(function(e)) ,但是当我保存时,控制台提示我错误:

“类型 'Jquery' 上不存在属性 'mask'”

我做错了什么?我必须在 appModule 上导入?我必须在 angular.json 中声明它吗?我必须导入要使用的组件文件吗?我该怎么办??
Obs:如果还有其他你认为更好的 Angular 遮罩,请告诉我 :)

【问题讨论】:

  • 你永远不应该 NEVER 将 jquery 与 angular 混合使用。你最好使用typescript / Angular library 来做到这一点。
  • @Nicolas 是正确的,如果可以的话,我会投票 10 倍。为什么要并排使用两个不同的javascript框架,就像同时使用java和c#一样。
  • 哇,很高兴听到这个消息,谢谢!

标签: javascript jquery angular mask


【解决方案1】:

嗯,Angular 2+ 的“官方”掩码库是https://www.npmjs.com/package/ngx-mask。我已经多次使用它并且效果很好。你应该在 appModule 中导入它,如果你有延迟加载的模块也使用了掩码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2020-02-16
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多