我使用的徽章如下:
<mdl-icon [mdl-badge]="myCount" mdl-badge-overlap>some_icon</mdl-icon>
当myCount:number为null时,Angular 2的mdl版本用于隐藏徽章。当前版本(带有Angular 4的4.0.1)显示带有&#39; null&#39;其中的文字。
但是 - a2MDL页面上的示例(动态实验)可以正常工作 - 从输入框中删除数字时,会隐藏徽章。我错过了什么吗?
答案 0 :(得分:0)
有趣!
版本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
正如您所看到的,不再检查它是否为“是否”。因此null值被隐式转换为字符串。
我创建了一个问题(https://github.com/mseemann/angular2-mdl/issues/775)来恢复旧的行为,如果该值不存在则删除该属性。