Angular2:克隆组件/ HTML元素及其功能

DS_web_developer:

所以,问题很简单...

我有一张桌子,上面有一些角度逻辑(计算样式等)...特别是在TH上

[class.hidden] = "column.group !== 'key-data' && currentTableView !== column.group"

对于我的表粘性标头功能,我需要克隆表并将其固定..使用指令执行此操作(简化)

let newTable = element.cloneNode(true);
body.appendChild(newTable);

显然,角度逻辑未应用于newTable,但我希望它是...

我该怎么做?

菲利普·劳克(Filip Lauc):

所以我做了一些研究,这就是我想出的。

您可以做到,使用模板和其实并不难[ngTemplateOutlet]它是这样工作的:

@Component({
  selector: 'my-app',
  template: `
    <ng-template #temp>
        <h1 [ngStyle]="{background: 'green'}">Test</h1>
        <p *ngIf="bla">Im not visible</p>   
    </ng-template>
    <ng-container *ngTemplateOutlet="temp"></ng-container>
    <ng-container *ngTemplateOutlet="temp"></ng-container>
    `
})

export class AppComponent {
    bla: boolean = false;
    @ContentChild('temp') testEl: any;
} 

因此,您创建了一个参考模板,在其中添加了所有逻辑,然后使用创建了模板的多个副本[ngTemplateOutlet]保留所有内部绑定和角度功能。

这是一个工作正常的人:

http://plnkr.co/edit/jPt5eKUfLUe9FxnLH8bL?p=preview

正如你可以看到我已经与测试它*ngIf[ngStyle]与他们的工作预期,我看不出有任何理由任何其他类型的指令是行不通的。

您甚至可以使用,*ngFor但随后需要提供[ngOutletContext]我已经在正在使用的库中做到这一点,您可以在此处查看示例:

https://github.com/flauc/ng2-simple-components/blob/master/src/select/select.component.ts

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular:克隆ng-content元素及其功能

angular2 ngfor 子组件元素

组件内的Angular2 HTML

如何在angular2中的父组件中访问子组件HTML元素值?

Angular2:获取组件内部html元素的引用,然后滚动到该html元素的顶部

Angular2:用户登录后触发子组件的功能

Angular2 Dart-获取组件的子元素

Angular2:用组件的模板替换宿主元素

Angular2中的材料设计组件“不是已知元素”

编译angular2 +组件以动态创建DOM元素

Angular2允许组件及其子组件访问服务中的ngModel的单个实例

从Angular2中的HTML调用组件方法

Angular2:HTML组件中的循环打字稿字典

Angular2:如何在组件内部显示组件标签的内部HTML?

angular2具有组件的服务调用成员功能的正确方法

Angular2 +-如何动态选择子组件并调用其功能?

Angular2如何在另一个组件中使用一个组件功能

访问Angular2 JavaScript ES5组件中的元素

Angular2 beta中的DynamicComponentLoader:“元素上没有组件指令”

如何在Angular2组件的CSS中引用宿主元素?

固定元素是相对于组件的,不是Angular2中的窗口

Angular2选择器与嵌套组件中的任何元素都不匹配

如何获取angular2组件的父DOM元素引用

如何将JavaScript重新绑定到angular2组件中的元素?

有什么办法克隆HTML5 canvas元素及其内容?

如何在Angular2的模板HTML上呈现动态创建的数组组件?

无法在Angular2中找到导入组件的模板html

Angular2本地化重新加载组件HTML

如何使用单独的templateUrl html文件npm发布Angular2组件?