目的是只添加垂直像素数
<spacer [height]="200"></spacer>
第一个问题:错误说高度不是间隔物的已知属性。所以看看这个: HTML:
<div [ngStyle]="{'padding': 'getHeight()'}">
</div>
import {Component, Input} from '@angular/core';
@Component({
selector: 'spacer',
templateUrl: './spacer.component.html',
styleUrls: ['./spacer.component.scss']
})
export class SpacerComponent {
@Input() height = '';
constructor() { }
getHeight() {
return this.height;
}
}
高度是属性吗?对?我还想将px添加到高度,但这似乎更糟糕。 感谢您的帮助。
谢谢,瑜珈。答案 0 :(得分:1)
问题是高度不是有效的html属性。如果您尝试更改px高度,则需要使用类或属性绑定来使css动态化。你还需要在'200'之后加上'px',例如:
@Input() height="200px"; //better to set the inside the parent component
// html
// use attribute binding
<div [attr.height]="height"></div>
// OR use interpolation
<div attr.height="{{ height }}"></div>
<强>此外:强>
我认为您对@Input()用法感到困惑。 @Input()不是执行此任务所必需的,它最常用于从父组件获取模板引用或值。
你可以简单地在.ts文件中定义高度,height = '200px'
没有@Input,然后使用上面的代码将该变量放入你的html中。只有当高度值来自另一个组件时才需要@Input()装饰器,在这种情况下,它用于与另一个组件通信,而不是与你的html模板通信。