2

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

4

2 回答 2

3

指令可以解决您的问题。

src/app/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">

如果你想让你的指令在任何地方都可以访问,你可以按照这个答案

于 2017-09-29T08:23:16.400 回答
1

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

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

所有样式 fromcomponent.css将仅应用于component.html(如果您不使用类似/deep/的东西)。所以随意改变当前布局的宽度,不会影响其他布局!

于 2017-09-29T07:13:45.800 回答