帮助者没有认识到'htmlSafe`的东西

时间:2017-09-06 14:13:59

标签: ember.js

我正在尝试通过helper重新添加空格来重新调整值。但我没有得到结果。

这是我的代码:

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>

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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