2016-11-07 57 views
0

我相信這個問題肯定已經得到解答或者在某個地方有詳細的記錄,但是我只是找不到它(搜索並沒有找到......)。我正在構建一個簡單的Angular2指令,它將基本屬性添加到內聯SVG中(有許多內聯SVG是動態修改的,因此它實際上對重複聲明中的標記進行清理是有意義的)。如何在Angular2 HostBinding屬性中使用特殊字符(即冒號)?

我能夠設置不包含特殊字符,像這樣的任何屬性:

@HostBinding('attr.something') something = something; 

但由於SVGs應包含的聲明「的xmlns:XLink的」,我需要找到一種方法如何使用該字符串裏面有冒號。有關如何規範化或轉義特殊字符的想法?

繼確實打破了代碼,並呈現角死因爲那冒號使得角度尋找「XLink的」內部「的xmlns」:

@HostBinding('attr.xmlns:xlink') something = something; 

值得注意注:我想使用打字稿,不是純JS。

謝謝。任何建議在哪裏看或嘗試是非常感謝!

回答

1

實際上,伺機任何屬性值時,當值沒有約束力裝飾直接分配,而是在後來OnInit的分配是這樣

export class SomeClass implements OnInit { 
 
    //obtain required definitions 
 
    // i.e. namespace, viewbox ... 
 
    
 
    //bind attributes to host 
 
    @HostBinding('attr.version') version; 
 
    @HostBinding('attr.xmlns') xmlns; 
 
    @HostBinding('attr.x') x; 
 
    @HostBinding('attr.y') y; 
 
    @HostBinding('attr.viewBox') viewBox; 
 
    @HostBinding('attr.xmlns:xlink') xlink; 
 
    @HostBinding('attr.xmlns:space') space; 
 

 
    //assign values to specified attributes 
 
    ngOnInit() { 
 
    this.viewBox = viewboxValue; 
 
    this.xlink = xlinkValue; 
 
    this.space = spaceValue; 
 
    this.x = xValue; 
 
    this.y = yValue; 
 
    this.xmlns = xmlnsValue; 
 
    this.version = versionValue; 
 
    } 
 
}

沒有問題
相關問題