将html变量传递给Javascript

将html变量传递给Javascript,javascript,html,angular,primeng,Javascript,Html,Angular,Primeng,我在我的web应用程序上为我的tabsystem使用Angular with Prime。 我有以下问题: <div *ngFor="let project of projects"> <div *ngIf="project.id === triggerProjectIdRefresh()"> <div *ngFor="let dashboard of project.dashboards; trackBy: dashboardTrack()">

我在我的web应用程序上为我的tabsystem使用Angular with Prime。 我有以下问题:

<div *ngFor="let project of projects">
<div *ngIf="project.id === triggerProjectIdRefresh()">
  <div *ngFor="let dashboard of project.dashboards; trackBy: dashboardTrack()">
    <div *ngIf="dashboard.id === triggerDashboardIdRefresh()" >
      <!--bottom toolbar-->

      <!-- Tab system -->


        <p-tabView id="tabView" [controlClose]="true" (onChange)="setActiveTabDeleteable()" (onClose)="deleteConfirmation(sheet.id)" class="tabGroup" orientation="bottom">
          <div *ngFor="let sheet of dashboard.sheets; trackBy: trackSheet()" > <!-- alluser sheets -->
            <p-tabPanel (mousedown)="tabId(sheet.id)" [header]="sheet.name" *ngIf="sheet.type === 'enduser'" >

              <!--tabbody-->
              <p-card class="middlecardSheet"> <!-- widget field is child of tab-->
                <app-display-widgets style="{border: #7A7A7A 2em solid;}" *ngIf="sheet.id === refreshCurrentSheet()" [dashboardID]="dashboard.id"></app-display-widgets>
              </p-card>

            </p-tabPanel> ...

...

元素中,我正在设置一个在水龙头关闭时调用的函数。该函数需要一些用于后台处理的进一步信息,因此我将传递sheet.id。问题是,由于分层结构,表被定义为一个元素。因此,我尝试将
sheet.id
传递给
中的javascript。我认为当面板被点击时,我可以使用给定的
sheet.id
。但我所做的任何尝试都没有有效的解决方案。所以我的问题是,如何将变量
sheet.id
传递给javascript或javascript函数

如果要在单击时传递图纸id,可以按以下方式进行:

<p-tabPanel (click)="tabId(sheet.id)" [header]="sheet.name" *ngIf="sheet.type === 'enduser'" >

您可以使用名为selectedSheetId的变量

(mousedown)="selectedSheetId = sheet.id"
所以

(onClose)="deleteConfirmation(selectedSheetId)" 
我会像你期望的那样工作

如果mousedown未在p-tabPanel上工作

<p-tabPanel header="Header 1">
    <button class="btn btn-secondary-live" 
                (click)="selectedSheetId = sheet.id">Click</button>
</p-tabPanel>

点击
甚至一个Div标签也能帮到你


否则,您可以依赖p-tabView[activeIndex]=“activeTab”的索引,并在其中关联您的sheetId。

您是否尝试过primeng中提供的onClose事件。使用它可以获得关闭选项卡的索引。然后,您可以创建自定义机制以在ts文件中获取sheet.id。无论如何,最好为你的代码创建stackblitz,然后人们可以帮助你。这是Priming stackblitz样板。导入您的模块并复制您的场景。同样在组件ts中,声明selectedSheetId。在定义选项卡内容时,不通过将元素放入来调用mousedown事件。所以这对我没有帮助。是的,但是点击事件不会被触发。我猜它可能会被覆盖,因为标签本身也是可点击的。