0

我正在寻找如何访问 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 不赞成它:[

4

1 回答 1

0

这个 怎么样<ion-grid [class.add-this-class]="whenThisState === true"></ion-grid>?或ngClass语法,如果你喜欢的话。

还是您想从父组件或其他组件中获取该元素?

-编辑-

如果你不能像我之前提到的那样去 angular 模板并在那里做一些绑定,那么基本上你有 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');

常量 click$ = Rx.Observable.fromEvent(clickEl, 'click');`

然后订阅

click$.subscribe(...)

于 2017-11-17T01:06:23.577 回答