angular templateRef 使用结构指令传递给父组件而不在父组件内呈现

达利加尔比

我试图在父组件的子元素中呈现模板,具体取决于它的类型值,如本架构中所述

在此处输入图片说明

我正在使用 myTemplateDirective 将 ng-template 传递给父视图(我的容器)

  --myTemplateDirective--
 this.parent.setDirective(this);

 --my-container--
 setDirective(test) {
    this.tmpl = test;
 }

在我的容器中,我将它传递给 my-componenet,后者将指令作为输入并呈现它

const element = this.template.renderTemplate(this.data ,this.viewContainerRef);


  renderTemplate(templateData, vcRef) {
this.renderCount++;

const viewData = {
  $implicit: {
    data: templateData,
    renderCount: this.renderCount
  }
};
const childView = vcRef.createEmbeddedView(this.templateRef, viewData);

// =========== WORKAROUND =============
// We have to use private API to force DOM to update
// childView['detectChanges']();
// =========== /WORKAROUND =============


this.cd.detectChanges();

return childView.rootNodes[0];
}

创建 EmbeddedView 后,我从 return childView.rootNodes[0] 得到的结果是:

<!---->

我创建了一个包含所有代码的 plunker 以更好地理解问题plunker 示例代码

jo_va

根据您的图表,您似乎有两个嵌套的ng-template.

Angular 将转换以下使用结构指令的内容:

<ng-template *myTemplate>
    <div>...</div>
</ng-template>

对此:

<ng-template myTemplate>
    <ng-template>
        <div>...</div>
    </ng-template>
</ng-template>

在您的情况下,如果您尝试渲染外部模板,这可能是一个问题,因为它只会在内部包含一个模板,因此没有什么可渲染的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 2-子组件如何与父组件说话?

来自分类Dev

子组件中的Angular 2 ngModel更新父组件属性

来自分类Dev

Angular2-从子组件访问父组件的变量

来自分类Dev

从Angular 2中的路由子组件更新父组件标题

来自分类Dev

Angular 1.5嵌套组件绑定父值

来自分类Dev

Angular2子组件控制父组件的路由

来自分类Dev

父组件的angular 2访问子组件属性

来自分类Dev

如何使用ngFor指令将子ID传递给Angular 2中的父对象

来自分类Dev

Angular2(2.0.0-beta.17)NgSwitchWhen给出“没有提供TemplateRef!的提供者”

来自分类Dev

如何从angular2中的子组件更新父组件

来自分类Dev

Angular2如何仅在存在父组件的情况下将其注入指令中?

来自分类Dev

使用指令将参数传递给子组件angular

来自分类Dev

父组件嵌套形式中的Angular Use子组件形式

来自分类Dev

显示标题字符串/ templateRef Angular

来自分类Dev

如何从子组件angular 7向父组件函数传递两个参数?

来自分类Dev

Angular 2包含:我可以向上将插槽内容传递给父组件

来自分类Dev

将数据从子组件传递到Angular @ViewChild中的父组件,需要2个参数

来自分类Dev

如何在Angular 2中将对象从“父级”组件传递到“子级”组件?

来自分类Dev

如何确定Angular在父模板内将子指令呈现在何处(多次跨接)?

来自分类Dev

Angular2-通过超时功能将带有EventEmitter的变量传递给父组件

来自分类Dev

当父组件使用ng-content Angular时,子组件的可访问性父组件

来自分类Dev

Angular2 指令监听父组件回调或更改

来自分类Dev

Angular 2 从嵌套的 TreeView 指令组件调用父组件

来自分类Dev

Angular TemplateRef ExpressionChangedAfterItHasBeenCheckedError

来自分类Dev

在Angular的父组件中创建子组件

来自分类Dev

如何在Angular4中将数据从子组件传递到父组件

来自分类Dev

Angular - 发出的事件无法传递到父组件

来自分类Dev

将 Kendo Angular 网格列模板传递给托管网格的父组件

来自分类Dev

为什么父组件能够从 Angular 服务中获取 Observable 类型的数据,而父组件却无法将数据传递给子组件?

Related 相关文章

  1. 1

    Angular 2-子组件如何与父组件说话?

  2. 2

    子组件中的Angular 2 ngModel更新父组件属性

  3. 3

    Angular2-从子组件访问父组件的变量

  4. 4

    从Angular 2中的路由子组件更新父组件标题

  5. 5

    Angular 1.5嵌套组件绑定父值

  6. 6

    Angular2子组件控制父组件的路由

  7. 7

    父组件的angular 2访问子组件属性

  8. 8

    如何使用ngFor指令将子ID传递给Angular 2中的父对象

  9. 9

    Angular2(2.0.0-beta.17)NgSwitchWhen给出“没有提供TemplateRef!的提供者”

  10. 10

    如何从angular2中的子组件更新父组件

  11. 11

    Angular2如何仅在存在父组件的情况下将其注入指令中?

  12. 12

    使用指令将参数传递给子组件angular

  13. 13

    父组件嵌套形式中的Angular Use子组件形式

  14. 14

    显示标题字符串/ templateRef Angular

  15. 15

    如何从子组件angular 7向父组件函数传递两个参数?

  16. 16

    Angular 2包含:我可以向上将插槽内容传递给父组件

  17. 17

    将数据从子组件传递到Angular @ViewChild中的父组件,需要2个参数

  18. 18

    如何在Angular 2中将对象从“父级”组件传递到“子级”组件?

  19. 19

    如何确定Angular在父模板内将子指令呈现在何处(多次跨接)?

  20. 20

    Angular2-通过超时功能将带有EventEmitter的变量传递给父组件

  21. 21

    当父组件使用ng-content Angular时,子组件的可访问性父组件

  22. 22

    Angular2 指令监听父组件回调或更改

  23. 23

    Angular 2 从嵌套的 TreeView 指令组件调用父组件

  24. 24

    Angular TemplateRef ExpressionChangedAfterItHasBeenCheckedError

  25. 25

    在Angular的父组件中创建子组件

  26. 26

    如何在Angular4中将数据从子组件传递到父组件

  27. 27

    Angular - 发出的事件无法传递到父组件

  28. 28

    将 Kendo Angular 网格列模板传递给托管网格的父组件

  29. 29

    为什么父组件能够从 Angular 服务中获取 Observable 类型的数据,而父组件却无法将数据传递给子组件?

热门标签

归档