改变Angular中某个组件的布局宽度

时间:2017-09-29 07:06:49

标签: angular angular-ng-if angular-ng-class angular-ng

是否可以仅更改所选组件中布局的宽度?我想仅在我的登录组件中更改<div class="page home-page">?仅在登录组件中,而不在其他组件上。

2 个答案:

答案 0 :(得分:2)

指令可以解决您的问题。

<强>的src /应用程序/ width.directive.ts

import { Directive, ElementRef, Input } from '@angular/core';

@Directive({ selector: '[width]' })
export class widthDirective {

    @Input()
    set width(width: number) {
      this.el.nativeElement.style.width = `${this._width}px`;
    }

    constructor(el: ElementRef) {}
}

然后在您可以使用的任何组件中:

<div class="page home-page" width [width]="500">

如果您想在任何地方访问指令,可以按照this answer

答案 1 :(得分:1)

Angular 2/4中的所有样式(主要全局样式表除外)都是封装的,所以当你包括这样的样式表时:

@Component({
  selector: 'component-name',
  templateUrl: './component.html',
  styleUrls: ['./component.css']
})

component.css中的所有样式都只会应用于component.html(如果您不使用/deep/之类的内容)。所以随意改变当前布局的宽度,它不会影响其他布局!