【发布时间】:2016-07-20 10:40:35
【问题描述】:
我想以与本例中使用的“attr”、“class”、“style”等内置指令相同的方式创建自定义属性指令:
<div [style.width.px]="mySize">
文档here 仅描述了具有固定指令名称的情况。所以问题是:
我应该如何为此类指令指定选择器?
如何检索指令名称的可变部分?
或者可能根本不可能并且仅用于内置指令?
【问题讨论】:
标签: javascript angular
我想以与本例中使用的“attr”、“class”、“style”等内置指令相同的方式创建自定义属性指令:
<div [style.width.px]="mySize">
文档here 仅描述了具有固定指令名称的情况。所以问题是:
我应该如何为此类指令指定选择器?
如何检索指令名称的可变部分?
或者可能根本不可能并且仅用于内置指令?
【问题讨论】:
标签: javascript angular
尽管@Günter 也检查过几乎肯定不可能做到这一点。
但如果您只是想要一个与style 几乎相似的指令,这可能会对您有所帮助。
用法:
<h2 [customStyle]="['width.px', mysize]" >Hello {{name}}</h2>
自定义指令:
@Directive({
selector: '[customStyle]',
inputs: ['style:customStyle']
})
export class CustomDir{
style;
constructor(private elRef: ElementRef){
}
ngAfterViewInit(){
if(this.style){
const prop = this.style[0].split('.')[0];
const unit = this.style[0].split('.')[1];
const val = this.style[1];
this.elRef.nativeElement.style[prop] = val + (unit || '');
}
}
}
【讨论】:
ngStyle
据我所知,这不受支持,也没有计划。
或者可能根本不可能并且仅用于内置指令?
此语法与指令无关,它是内置的绑定语法。
【讨论】: