1
ディレクティブから要素を取得しようとしましたが、その上でCSSの変更を行っていました。しかし、常にangular2ディレクティブ内のDOMオブジェクトを取得する方法
nativeElement is undefined
が、私は両方の方法を試してみました私に言っている:
は
は、それらの両方が動作していない
私の親HTML:
<div class="col-lg-12 module_style" id="module-wrapper">
<div class="col-lg-12">
<p class="left-alignment">
<b><i class="fa fa-file-text fa-lg" aria-hidden="true"></i> Market Category: </b>
{{item.marketCategory}}
</p>
<p class="right-alignment" id="moduleCog" [moduleOpt]="item">
<i class="fa fa-cog fa-lg" aria-hidden="true"></i>
</p>
<module-modal #moduleModal [data]="item"></module-modal>
</div>
<div class="col-lg-12"><p class="left-alignment">{{item.source}} <i class="fa fa-long-arrow-right fa-lg" aria-hidden="true"></i> {{item.target}}</p></div>
</div>
子のhtml: "モジュール峰"
<div id="modal-container">
<div class="modal-background">
<div class="modal">
<h2>I'm a Modal</h2>
<p>Hear me roar.</p>
</div>
</div>
</div>
マイ指令:
import { Directive, ElementRef, Input, Renderer, ViewChild, HostListener, OnInit, ContentChild } from '@angular/core';
@Directive({
selector: '[moduleOpt]'
})
export class ModuleOptDirective implements OnInit{
showModal: boolean = false;
@Input('moduleOpt') moduleOpt: any;
@ContentChild('moduleModal') moduleModal: ElementRef;
//@ViewChild('moduleModal') moduleModal: ElementRef;
constructor(private _renderer: Renderer) {}
ngOnInit() {
}
@HostListener('click', ['$event'])
showDetails(event) {
console.log(event);
console.log(this.moduleOpt);
this._renderer.setElementClass(this.moduleModal.nativeElement, 'modal-animate', true);
}
}
誰かがこれで私を助けてもらえますか?問題
this._renderer.setElementClass(this.moduleModal.nativeElement, 'modal-animate', true);
this.moduleModal.nativeElement
がnativeElement
の間違った使い方ですが見つかり