如何获取动态属性的元素(DOM),如果它在<ng-template> angular内

时间:2018-06-01 06:54:21

标签: angular typescript angular-directive

written, err := io.Copy(w, resp.Body)
if err != nil {
    // Copy did not succeed
}

但是我无法通过我所做的指令获得属性“data-v”。代码工作正常,如果它在“div”块而不是ng-template。 以下是我的指示

<ng-template pTemplate="body"
                           let-node="rowData">
                <button type="button"
                        [disabled]="hasValid(node)"
                        *ngIf="getBtnLabel(node)"
                        class="btn btn-default btn-sm"
                        [attr.data-v]="rAddBtn(node)"
                        translate>
                  <i class="s s-plus"
                     aria-hidden="true"></i> {{getBtnLabel(node)}}
                </button>
</ng-template>

1 个答案:

答案 0 :(得分:0)

尝试将您的代码放入ngAfterViewInit()函数中。在调用构造函数时,可能无法呈现Element。

export class DataVandvDirective implements OnInit, AfterViewInit {
vAttribute: string;
constructor(private element: ElementRef) { }

ngOnInit(): void { }
}

ngAfterViewInit(): void {

    const native = this.element.nativeElement;
    this.vAttribute = native.getAttribute('data-v');
    console.log("the v att", this.vAttribute);
}