angular - Angular createEmbeddedView 没有在正确的索引处渲染视图,而是在最后一个索引处渲染
问题描述
我有一个包含多个子组件的父组件,其中一个子组件具有自定义结构指令“可访问”,如下面的代码所示。
假设,
<my-table>
<div myTableColumn></div>
<div myTableColumn *accessible="'user'"></div>
<div myTableColumn></div>
<div myTableColumn></div>
</my-table>
在这里,结构指令可访问写为
@Directive({
selector: '[accessible]'
})
constructor(
private templateRef: TemplateRef<any>,
private viewContainerRef: ViewContainerRef
) {}
@Input() set accessible(val) {
if (val === 'user') {
this.viewContainerRef.createEmbeddedView(this.templateRef);
} else {
this.viewContainerRef.clear();
}
}
但这是在最后一个索引处使用结构指令(即第二列)进行渲染。
如何将索引传递给 createEmbeddedView 以在正确的索引处插入模板。但是在上面的代码中传递索引似乎不起作用。
提前致谢。
解决方案
推荐阅读
- c# - 有没有获得复选框选中状态
- node.js - 我的机器人正在终端中运行,但不会在 Discord-js 上产生输出
- python-3.x - 使用 spotipy 获取专辑的类别信息?
- python - Python - 返回矩阵行,列中具有匹配条件
- c++ - 如何分配一个线程执行的时间?
- azure-devops - 有没有办法从 Release Gate REST API 调用中获取当前日期/时间
- amazon-web-services - 使用 AWS lambda 遇到“找不到模块”......有时
- npm - 无法正确安装 Gulp
- python - 采用一个参数的导入函数显示给出了 2 个参数的错误
- reactjs - React 访问原始音频数据