徽章问题 - angular2-mdl 4.0.1 (Angular 4)
Badge issue - angular2-mdl 4.0.1 (Angular 4)
我使用徽章如下:
<mdl-icon [mdl-badge]="myCount" mdl-badge-overlap>some_icon</mdl-icon>
当myCount:number为null时,Angular 2的mdl版本用于隐藏徽章。当前版本(4.0.1 Angular 4)显示一个带有 'null' 文本的徽章。
但是 - a2MDL 页面上的示例(动态实验)工作正常 - 从输入框中删除数字时,徽章被隐藏。我错过了什么吗?
有趣!
版本 2 和版本 4 之间发生的变化是版本 2 使用 Renderer
中的 setElementAttribute
class:
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) 以恢复在值不存在时删除属性的旧行为。
我使用徽章如下:
<mdl-icon [mdl-badge]="myCount" mdl-badge-overlap>some_icon</mdl-icon>
当myCount:number为null时,Angular 2的mdl版本用于隐藏徽章。当前版本(4.0.1 Angular 4)显示一个带有 'null' 文本的徽章。
但是 - a2MDL 页面上的示例(动态实验)工作正常 - 从输入框中删除数字时,徽章被隐藏。我错过了什么吗?
有趣!
版本 2 和版本 4 之间发生的变化是版本 2 使用 Renderer
中的 setElementAttribute
class:
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) 以恢复在值不存在时删除属性的旧行为。