2017-04-09 39 views
0

我使用徽章如下:徽章問題 - angular2-MDL 4.0.1(角4)

<mdl-icon [mdl-badge]="myCount" mdl-badge-overlap>some_icon</mdl-icon> 

當mycount的:號碼爲空,則MDL版2角用於隱藏徽章。當前版本(使用Angular 4的4.0.1)顯示了一個其中包含'null'文本的徽章。

但是 - a2MDL頁面上的示例(動態實驗)工作正常 - 從輸入框中刪除數字時,徽章將被隱藏。我錯過了什麼嗎?

回答

0

有趣!

已經版本2和4之間變化的事情是,2是使用setElementAttributeRenderer類的版本:

this.renderer.setElementAttribute(this.el, 'data-badge', this.mdlBadgeContent); 

Renderer已被廢棄,代之以Renderer2

this.renderer.setAttribute(this.el, 'data-badge', this.mdlBadgeContent); 

但實施已發生變化: 版本2:https://github.com/angular/angular/blob/2.4.x/modules/%40angular/platform-browser/src/dom/dom_renderer.ts#L199

版本4 https://github.com/angular/angular/blob/92084f2b6a7cc1c81e31b8f413424223e62806d8/packages/platform-browser/src/dom/dom_renderer.ts#L148

正如您所看到的,它不再檢查值是否存在。所以空值被隱式轉換爲字符串。

我創建了一個問題(https://github.com/mseemann/angular2-mdl/issues/775)來恢復舊的行爲,如果該值不存在,則刪除該屬性。