ERROR TypeError: "jit_nodeValue_3(...).toggle is not a function"

ERROR TypeError: "jit_nodeValue_3(...).toggle is not a function"

我正在做一个 Angular 项目。我想添加一个月份选择器,它会在点击导航栏上的文本字段时出现。我正在使用 primeng 组件,例如 <p-calendar><p-overlay>。它本身就是一个巨大的项目,我必须添加 calendar 小部件。因此,我将只向您展示我的部分代码。

navigation.component.html

<div class="dls-menu-item" style="float: right; margin-right: 200px;">
    <input type="text" (click)="op.toggle($event)">
</div>

<p-overlayPanel #op>
  <div id="comp-render">
    <div class="all-container">
      <p>Time selection</p><br>
      <div>
        <p-calendar view="month" dateFormat="mm/yy"...></p-calendar>
      </div>
      <br>
    </div>
  </div>
</p-overlayPanel>

但是当我点击输入字段时,我得到了这个错误:

我对这个错误的研究表明它与 MD Bootstrap 有关。但是 this answer is not working for me. I also tried 技术并没有按照我们想要的方式执行。我的发现表明 (click)="op.toggle($event) 是根本原因。请告诉我如何解决这个问题。

抱歉回复晚了,您可以尝试创建 typings.d.ts 并将此代码放入其中吗

interface JQuery<any> {
    tooltip(params: any): any;
}

然后在你的tsconfig.json

"typeRoots": [
            "node_modules/@types",
            "src/typings.d.ts" // add here
        ],

当您尝试从非主要元素触发弹出窗口切换时会发生这种情况。看来您需要将 pInput 添加到输入(或 div 并移动点击处理程序),然后它才会起作用。

<div class="dls-menu-item" style="float: right; margin-right: 200px;">
    <input type="text" (click)="op.toggle($event)" pInput><!--Add pInput-->
</div>

<p-overlayPanel #op>
  <div id="comp-render">
    <div class="all-container">
      <p>Time selection</p><br>
      <div>
        <p-calendar view="month" dateFormat="mm/yy"...></p-calendar>
      </div>
      <br>
    </div>
  </div>
</p-overlayPanel>

请检查您正在使用的模块中是否导入了 ngx-menu。基本上,如果您正在使用多个模块,并且如果您没有将其导入到您使用 ngx-menu 的模块中,那么它将抛出此错误。所以在那个特定的模块中导入 ngx-menu 来解决这个错误。 :)

我最近在使用 Angular 7 和 Mat-Menu 时遇到控制台错误 jit_nodevalue_3(...) is not a function。 =13=]

此错误背后的原因是 mat-menu 元素被声明为与我正在使用的点击处理函数同名。

<mat-menu #onClickItem="matMenu">
  <button mat-menu-item (click)="onClickItem()">Item 1</button>
  <button mat-menu-item>Item 2</button>
</mat-menu>

重命名点击功能解决了问题。

<button mat-menu-item (click)="doSomething()">Item 1</button>

希望这对某人有所帮助。