2017-09-06 24 views
0

我试图通过helper重新添加空间值。但我没有得到结果。帮助程序无法识别`htmlSafe`内容

这里是我的代码:

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); 

但结果就这样产生:

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

什么是错在这里我的代码?

在此先感谢。

这里是HBS文件:

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

回答

1

我已经更新了我的过滤器是这样的:

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); 

工作正常。感谢TBieniek

1

的问题,您的片断是htmlSafe()只适用于整个字符串,而不是一个字符串的只是部分。而不是在正则表达式替换函数中应用htmlSafe(),您可以return Ember.String.htmlSafe(reformat),然后它应该按预期工作。