我使用徽章如下:徽章問題 - 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頁面上的示例(動態實驗)工作正常 - 從輸入框中刪除數字時,徽章將被隱藏。我錯過了什麼嗎?
我使用徽章如下:徽章問題 - 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頁面上的示例(動態實驗)工作正常 - 從輸入框中刪除數字時,徽章將被隱藏。我錯過了什麼嗎?
有趣!
已經版本2和4之間變化的事情是,2是使用setElementAttribute
從Renderer
類的版本:
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
正如您所看到的,它不再檢查值是否存在。所以空值被隱式轉換爲字符串。
我創建了一個問題(https://github.com/mseemann/angular2-mdl/issues/775)來恢復舊的行爲,如果該值不存在,則刪除該屬性。