You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15中p-dialog无法通过组件选择器渲染跨模块组件

问题描述

在nursing-audit.module模块下的audit2.component组件中,尝试通过PrimeNG的p-dialog渲染variance.module模块内的urc.component组件。目前p-dialog可正常打开并显示头部内容,但使用<app-urc>选择器无法渲染目标组件——该组件在自身所属的variance.module中可正常运行,当前对话框仅显示头部,下方应出现的表格未加载。

相关代码

audit2.component.ts

import { UrcComponent } from "src/app/variance/urc/urc.component";

@Component({
  selector: "app-audit2",
  templateUrl: "./audit2.component.html",
  styleUrls: ["./audit2.component.css"],
  providers: [MessageService]
})

audit2.component.html(p-dialog片段)

<p-dialog
[(visible)]="individualActivityDialog"
[style]="{ width: '98vw' }"
[maximizable]="true"
[resizable]="true">
  <p-header>
    <h4>Individual Activity</h4>
    {{ selectedRow["Name"] }} ID:{{ selectedRow["Id"] }}
  </p-header>
    <app-urc></app-urc>
</p-dialog>

nursing-audit.module.ts

// ...省略其他导入
import { VarianceModule } from '../variance/variance.module';

@NgModule({
  declarations: [/* 组件列表 */],
  imports: [
    // ...其他导入
    VarianceModule
  ],
  // ...其他配置
})
export class NursingAuditModule { }

urc.component.ts

@Component({
  selector: "app-urc",
  templateUrl: "./urc.component.html",
  styleUrls: ["./urc.component.css"],
  providers: [MessageService, ConfirmationService],
})
export class UrcComponent implements OnInit {
  varianceNodes: TreeNode[] = [];
  commentDialog: boolean = false;
// ...其他代码
}

variance.module.ts

@NgModule({
  declarations: [/* 包含UrcComponent */],
  imports: [/* 依赖模块 */],
  // ...其他配置
})
export class VarianceModule { }
解决方案

核心问题是VarianceModule未对外暴露UrcComponent组件。Angular模块规则:只有添加到exports数组的组件、指令、管道,才能被其他导入该模块的模块调用。

修改variance.module.ts,将UrcComponent加入exports数组:

@NgModule({
  declarations: [UrcComponent /* 其他组件 */],
  imports: [/* 依赖模块 */],
  exports: [UrcComponent] // 暴露组件给外部模块使用
})
export class VarianceModule { }

完成修改后,NursingAuditModule导入VarianceModule即可正常识别并渲染<app-urc>组件。

内容的提问来源于stack exchange,提问作者Mitchell Leefers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:09:54