正如标题所说,我需要在 2sxc 模块中找到一种方法来检测它是页面上的原始模块还是主题中渲染的模块的副本。
更多信息:我有一个案例,我正在为弹出菜单制作管理器页面,它需要在页面上显示弹出菜单的外观,并在主题中渲染此模块。我发现要在主题中渲染模块,我需要使用
this.GetScopedService<IRenderService>().Module()
,但我遇到的问题是我需要检测它是页面上的原始模块还是通过主题在主题中渲染的版本IRenderService 调用,因为我需要在原始标签中添加一些附加标签才能使其正确显示。有什么办法可以检查吗?
当您从主题渲染模块时,您可以传入 Data。因此,当模块在页面上呈现时,该数据将为空。如此简单地添加(或不添加)到您的输出中。可能很简单(注意:这是伪代码,我没有尝试过)
...Module(pageId: 42, moduleId: 123, data: {})
然后
if (MyModel.Data is null)
{
// add stuffs
}
else
{
// don't add stuffs
}
这还允许您传递设置或其他内容,并执行与主题与“真实”模块输出不同的各种操作。