2017-04-09 1 views
0

J'utilise des badges comme suit:question Badge - angular2-mdl 4.0.1 (angulaire 4)

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

Lorsque myCount: numéro est nul, la version mdl pour 2 angulaire utilisé pour cacher le badge. La version actuelle (4.0.1 avec Angular 4) montre un badge avec du texte 'null'.

Cependant - l'exemple (expériences dynamiques) sur une page a2MDL fonctionne correctement - lors de la suppression d'un numéro de la boîte de saisie, le badge est caché. Est-ce que je manque quelque chose?

Répondre

0

Intéressant!

La seule chose qui a changé entre la version 2 et 4 est que la version 2 est d'utiliser setElementAttribute de la classe Renderer:

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

Le Renderer a été dépréciée et remplacé par Renderer2:

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

Mais la mise en œuvre a changé: Version 2: https://github.com/angular/angular/blob/2.4.x/modules/%40angular/platform-browser/src/dom/dom_renderer.ts#L199

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

Comme vous pouvez le voir, il n'est plus vérifié si la valeur est Présent ou non. Donc, la valeur nulle est implicitement convertie en chaîne.

J'ai créé un problème (https://github.com/mseemann/angular2-mdl/issues/775) pour restaurer l'ancien comportement qui supprime l'attribut si la valeur n'est pas présente.