angular - Angular 6:从模板传递 viewContainerRef
问题描述
我有一个 Angular 6 应用程序;组件方法需要访问viewContainerRef
组件模板中任何给定元素的 ,以便将其传递给服务方法。这是我目前正在做的事情。它有效,但我希望更简单:
<div #myDiv></div>
<button (click)="doWork()"></button>
在组件中:
@ViewChild('myDiv', {read: ViewContainerRef}) divView: ViewContainerRef;
doWork() {
this.service.work(this.divView);
}
所以doWork
需要viewContainer
. 我希望更简单,就像这样:
<div #myDiv></div>
<button (click)="doWork(???)"></button>
有什么方法可以直接从模板中传入 viewContainerdoWork
吗?
解决方案
我认为没有内置的方法。但是,您可以创建一个指令,使 ViewContainerRef 在模板中可用:
import { Directive, ViewContainerRef } from '@angular/core';
@Directive({
selector: '[viewContainer]',
exportAs: 'viewContainer'
})
export class ViewContainerDirective {
constructor(public container: ViewContainerRef) {
}
}
https://stackblitz.com/edit/angular-oydor5?file=src%2Fapp%2Fapp.component.html
推荐阅读
- javascript - 如何在 React Native 中垂直和水平对齐父组件“顶部”的子组件?
- google-chrome-extension - 在进行开发时是否有更好的方法来继续删除和重新加载“解压”的 chrome 扩展
- javascript - 如何为输入创建全局变量以及为什么要添加
- javascript - 如何在更新时制作 vuex 状态更新 UI?
- java - 用于自我更新程序的 Docker entrypoint.sh
- cors - 与邮递员和浏览器一起使用的请求资源上不存在“Access-Control-Allow-Origin”标头
- windows - 如何在批处理文件的for循环中提取a中的子字符串
- typescript - 如何在打字稿游乐场加载节点库?
- amazon-web-services - 用于从另一个账户中的 DynamoDB 提取数据的 AWS Glue 作业
- python - 我的 Django 应用程序不会检测到 settings.py,也不会检测到 SECRET_KEY