在Angular MVP架构中,将ElementRef传递给Presenter是一个常见的需求。Presenter需要ElementRef来访问DOM元素。以下是实现的示例代码:
// component.ts import { Component, ElementRef } from '@angular/core'; import { Presenter } from './presenter';
@Component({
selector: 'app-root',
template: ,
})
export class AppComponent {
@ViewChild('container', { static: true }) container: ElementRef;
constructor(private presenter: Presenter) {}
ngOnInit() { this.presenter.init(this.container); } }
// presenter.ts import { ElementRef } from '@angular/core';
export class Presenter { private container: ElementRef;
init(container: ElementRef) { this.container = container; console.log('Container element:', this.container.nativeElement); } }
在组件中使用ViewChild获取container元素的引用,并将其传递给Presenter。Presenter可以通过访问this.container.nativeElement来访问DOM元素。