[英]How To Transverse/Manipulate the DOM in Angular 4
我正在寻找如何访问A4中的DOM元素。
我很难尝试解决这个问题……我一直在阅读有关ElementRef,ViewChild等的信息,但是我仍然不完全了解如何在Angular 4中扩展DOM元素。这个jQuery语句在A4中会是什么?
$('events > ion-content > div.scroll-content > ion-grid:nth-child(1)').css({blah blah});
喜欢:
ElementRef.nativeElement - events > ion-content > div.scroll-content > ion-grid:nth-child(1)
如何以上述方式访问该元素-而不添加任何ID,类或#template标签? 在某些情况下,我无法访问html,因此我想知道如何在不使用jQuery的情况下执行此操作,因为它与Angular格格不入:[
这个<ion-grid [class.add-this-class]="whenThisState === true"></ion-grid>
怎么样? 或ngClass
语法(如果您愿意)。
还是要从父组件或其他组件中获取该元素?
-编辑-
如果您不能转到角度模板并像我前面提到的那样在那里进行绑定,那么基本上您有2个选择Vanilla JS: private theElementYouAreLookingFor: HTMLElement
在ngAfterViewInit()
生命周期中,尝试使用JS进行获取并将其存储在此this.theElementYouAreLookingFor
或
通过使用新的Angular方式@ViewChild('someVar') el:ElementRef;
constructor(private renderer: Renderer2) {}
和ngAfterViewInit()
this.el.nativeElement();
或使用类似Observables
东西:`const clickEl = document.querySelector('#my-button');
const click $ = Rx.Observable.fromEvent(clickEl,'click');`
然后订阅
click$.subscribe(...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.