2
我想通過另一個自定義指令添加所有fxFlex fxFlex.gt-xs指令,這樣我就可以保持我的html儘可能乾淨。我創建了下面的指令從另一個指令角添加fxFlex指令
import { Directive, ElementRef, Renderer, OnInit } from '@angular/core';
@Directive({
selector: '[coreFlexInput]'
})
export class FlexInputDirective implements OnInit {
constructor(private el: ElementRef, private renderer: Renderer) {
// Use renderer to render the element with 50
}
ngOnInit() {
this.renderer.setElementAttribute(this.el.nativeElement, "fxFlex", "");
this.renderer.setElementAttribute(this.el.nativeElement, "fxFlex.gt-xs", "33");
this.renderer.setElementClass(this.el.nativeElement, "padding-5", true);
this.renderer.setElementStyle(this.el.nativeElement, "line-height", "50px");
this.renderer.setElementStyle(this.el.nativeElement, "vertical-align", "middle");
}
}
,並用它作爲下面
<div coreFlexInput></div>
但檢查DOM時,不加入和柔性功能。 如果我使用這種方式則是工作,我想到反正
<div coreFlexInput fxFlex fxFlex-gt-xs="33"></div>
它是一個正確的做法還是我失去了一些東西?
又一個謹慎的點,使用上DOM元素編譯服務,已經有東西像NG-點擊會導致他們兩次起火。至少這是我在NG1.5 +中的經驗 – jusopi