2017-09-06 4 views
0

J'essaye de retuner une valeur avec l'espace ajouté par helper. mais je n'obtiens pas le résultat.Aide ne reconnaissant pas les choses `htmlSafe`

voici mon code:

import Ember from 'ember'; 

export function cardNoDisplay(params/*, hash*/) { 
    var paramStr = params.toString(); 
    var updatedParams = paramStr.substring(paramStr.length-4); 
    var reformat = paramStr.replace(/(\d{4})/g, function(match){ 
    return match + Ember.String.htmlSafe("<span>++</span>"); 
    }); 
    return reformat; 
} 

export default Ember.Helper.helper(cardNoDisplay); 

Mais le résultat vient comme:

<span>3230<span>++</span>4211<span>++</span>5712<span>++</span>8203<span>++</span></span> 

Quel est le problème avec mon code ici?

merci d'avance.

est le fichier HBS ici:

<span class="cs2i-purchase-card-font"> 
       {{card.cardName}} 
       <span>{{card-no-display card.cardNo}}</span> 
       </span> 

Répondre

1

J'ai mis à jour mon filtre comme ceci:

import Ember from 'ember'; 

export function cardNoDisplay(params/*, hash*/) { 
    var paramStr = params.toString(); 
    var updatedParams = paramStr.substring(paramStr.length-4); 
    var reformat = paramStr.replace(/(\d{4})/g, function(match){ 
    return match + "<span> </span>"; 
    }); 
    return Ember.String.htmlSafe(reformat); 
} 

export default Ember.Helper.helper(cardNoDisplay); 

fonctionne très bien. grâce à TBieniek

1

le problème avec votre extrait est que htmlSafe() ne fonctionne que pour les chaînes entières, non seulement pour les parties d'une chaîne. au lieu d'appliquer htmlSafe() à l'intérieur de la fonction de remplacement d'expressions régulières, vous pouvez return Ember.String.htmlSafe(reformat) et puis il devrait fonctionner comme prévu.