自定义指令不起作用
custom directive not working
我正在尝试为 redacted/private 信息创建指令。
如果未提供某些信息,则应显示黑框(就好像内容在那里,但用黑框隐藏了一样)
import { Directive, ElementRef, Renderer, OnInit } from
'@angular/core';
@Directive({
selector: '[appRedactedContent]'
})
export class RedactedContentDirective implements OnInit {
min = 75;
max = 150;
width = this.randomIntFromInterval(this.min, this.max);
constructor(private el: ElementRef,
private renderer: Renderer) {
}
ngOnInit() {
this.renderer.setElementStyle(
this.el.nativeElement, 'background-color', 'blue !important');
this.renderer.setElementStyle(this.el.nativeElement, 'width',
this.width.toString());
}
randomIntFromInterval(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1) + min);
}
}
html
<a appRedactedContent></a>
当我打开我的开发者工具时,我可以看到正在添加的样式,但是我在浏览器中看不到一个蓝色框的 a-tag
标签作为内嵌的默认显示,您不能强制要求宽度和高度。
因为你的a标签没有内容所以宽度为0所以你看不到它
如果你想强制宽度,你必须将其显示设置为内联块
我正在尝试为 redacted/private 信息创建指令。 如果未提供某些信息,则应显示黑框(就好像内容在那里,但用黑框隐藏了一样)
import { Directive, ElementRef, Renderer, OnInit } from
'@angular/core';
@Directive({
selector: '[appRedactedContent]'
})
export class RedactedContentDirective implements OnInit {
min = 75;
max = 150;
width = this.randomIntFromInterval(this.min, this.max);
constructor(private el: ElementRef,
private renderer: Renderer) {
}
ngOnInit() {
this.renderer.setElementStyle(
this.el.nativeElement, 'background-color', 'blue !important');
this.renderer.setElementStyle(this.el.nativeElement, 'width',
this.width.toString());
}
randomIntFromInterval(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1) + min);
}
}
html
<a appRedactedContent></a>
当我打开我的开发者工具时,我可以看到正在添加的样式,但是我在浏览器中看不到一个蓝色框的 a-tag
标签作为内嵌的默认显示,您不能强制要求宽度和高度。
因为你的a标签没有内容所以宽度为0所以你看不到它
如果你想强制宽度,你必须将其显示设置为内联块