Angular 2 - 按类名添加/删除类

标签 angular

在我的应用程序中,我将根据设备方向添加或删除一个类。因此,如果应用程序是纵向的,那么事情将保持原样。如果是风景,那么应该添加一个类。

我知道我可以使用 [class.ClassName] 轻松做到这一点 -

<div class="parentclass" [class.landscapeClass]="makeTrue">
 <span></span>
</div>

但问题是我必须在多个模板中重复此更改。

如何在使用另一个类(parentclass)的地方轻松添加和删除一个类(在我的示例中为landscapeClass)?当应用程序是纵向时将其删除。

我正在使用 cordova screen orientation plugin 获取应用程序的方向。

我正在使用 Angular2 RC4,并且正在寻找无需使用 Jquery 的解决方案。

编辑:我试图找到这样的解决方案的原因是,当键盘在 Android 上出现时,使用媒体查询会弄乱我的 UI。我知道使用纵横比的解决方案,但这不是 100% 可靠的解决方案。

最佳答案

如果该类仅用于调整元素的样式,则可以使用 css 媒体查询来检查纵向方向,而不是添加类。

@media only screen and (orientation: portrait) {}
@media only screen and (orientation: landscape) {}

编辑:您还可以将类放在更全局的元素上,并使用方向玻璃开始选择器。

CSS:

.orientationPortrait .parentClass { /* styling */}

萨斯:

.parentClass {
  .orientationPortrait & { /* styling */}
}

关于Angular 2 - 按类名添加/删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39367761/

相关文章:

angular - 无法理解 Angular2 中的单向绑定(bind)

typescript - 具有angular2的materialize-css中的多个选择不呈现动态值

angular - 无法在 'createObjectURL' : Overload resolution failed with npm file-saver 上执行 'URL'

Angular 在循环中多次调用相同的 API

javascript - Angular 2 属性注释不编译

angular - 全局改变 Angular 根路由而不改变 routerLinks

angular - IONIC 3 - Admob Free 在测试错误时不显示广告

c# - 使用 Angular 8 和 .Net Core Web API 上传大文件

javascript - 根据条件隐藏属于循环一部分的项目

angular - 动态函数调用 Angular 2