繁体   English   中英

如何在Angular 4中横向/操纵DOM

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM