角度自定义指令以角度5重复元素

时间:2018-06-05 14:01:57

标签: angular

我想在该指令中构建一个指令元素数组,并通过将该指令绑定到任何元素上,该元素应该重复数组所具有的次数,假设数组通过将指令绑定到元素而具有3个元素元素将重复3次请帮助并提供基本的想法,因为我是初学者我想在角5中实现这个

2 个答案:

答案 0 :(得分:0)

我仍然不确定,如果我理解你(标点符号可能有帮助)。

为什么不使用ngFor?

Type of expression is ambiguous without more context

答案 1 :(得分:0)

创建指令文件:

import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';

@Directive({ selector: '[myFor]' })
export class ForDirective {
  constructor(
    private templateRef: TemplateRef<any>,
    private viewContainer: ViewContainerRef
    ) { }

  @Input() set myFor((arr: any[]) {
    for(var i = 0, len = arr.length; i < len; i++) {
      this.viewContainer.createEmbeddedView(this.templateRef);
    }
  }
}

向组件添加数组:

export class AppComponent  {
  arr = [1,2,3];

  getArr() {
    return this.arr;
  }
}

将指令添加到模板中:

<p *myFor="getArr()">
  Test
</p>

在适当的地方注册指令。

https://stackblitz.com/edit/emulate-ngfor-directive-in-angular