angular - 为什么@HostBinding 不设置类?
问题描述
我在组件中有绑定:
@HostBinding('class.centered') public centered: boolean;
ngOnInit() {
this.centered = true;
}
款式:
:host {
position: relative;
display: block;
width: 100%;
height: 100%;
}
.centered {
margin: 0 auto;
display: block;
}
如果检查 Google HTML,我会看到:
<app-map id="map" _nghost-ops-c160="" ng-version="10.2.5" class="centered" style="width: 800px; height: 800px;"></app-map>
为什么类.centered
不适用?
解决方案
我假设在这个问题中,您指的是您希望出现在元素上的样式app-map
没有出现。
这可能是由于您如何构建 CSS。您可以看到,在您展示的 HTML 片段中,元素 has class="centered"
,这告诉我们它已成功将该类应用到元素,但您的 CSS,如所写,仅适用于 app-map
. 您的 CSS 将适用于以下结构:
<app-map>
<div class="centered"></>
</app-map>
为了使这项工作如您所愿,请将您的 CSS 更改为:
:host {
position: relative;
display: block;
width: 100%;
height: 100%;
}
/* Notice there is no space between ":host" and ".centered"*/
:host.centered {
margin: 0 auto;
display: block;
}
这指定了以下结构:
<app-map class="centered"></app-map>
推荐阅读
- android - 在android应用程序中禁用主页按钮和最近的应用程序按钮
- python - 使用决策树调优树并比较几种候选树模型的准确率
- python - 在 Python 中使用 Xarray 和 Pandas 将 csv 文件转换为网格化的 netcdf .nc 文件
- sql - SQL presto - 交叉连接未嵌套空值
- swift - group.notify 从未在 dispatchGroup 中调用
- c# - CS8321:声明了本地函数“TextChange”但从未使用过
- javascript - 如何使用按钮更改当前选择的选项
- java - java: 包 net.serenitybdd.core.pages 不存在
- amazon-web-services - 同步 Aws S3 CLI 后删除本地文件
- pandas - 饼图中的列名重叠标签