Angular 中某个组件的布局宽度改变
Change Width of Layout in A Certain Component in Angular
是否可以仅在选定的组件中更改布局的宽度?我只想在我的登录组件中更改 <div class="page home-page">
吗?仅在登录组件中,不在其他组件中。
Angular 2/4 中的所有样式(主要全局样式表除外)都已封装,因此当您包含这样的样式表时:
@Component({
selector: 'component-name',
templateUrl: './component.html',
styleUrls: ['./component.css']
})
component.css
中的所有样式将仅应用于 component.html
(如果您不使用 /deep/
之类的东西)。所以随意改变当前布局的宽度,不会影响其他布局!
指令可以解决您的问题。
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">
如果你想让你的指令在任何地方都可以访问,你可以遵循 。
是否可以仅在选定的组件中更改布局的宽度?我只想在我的登录组件中更改 <div class="page home-page">
吗?仅在登录组件中,不在其他组件中。
Angular 2/4 中的所有样式(主要全局样式表除外)都已封装,因此当您包含这样的样式表时:
@Component({
selector: 'component-name',
templateUrl: './component.html',
styleUrls: ['./component.css']
})
component.css
中的所有样式将仅应用于 component.html
(如果您不使用 /deep/
之类的东西)。所以随意改变当前布局的宽度,不会影响其他布局!
指令可以解决您的问题。
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">
如果你想让你的指令在任何地方都可以访问,你可以遵循