Helper 无法识别 `htmlSafe` 的东西

Helper not recognizing the `htmlSafe` stuff

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

这是我的代码:

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>

您的代码段的问题是 htmlSafe() 仅适用于整个字符串,而不是仅适用于字符串的一部分。您可以 return Ember.String.htmlSafe(reformat) 而不是在正则表达式替换函数中应用 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 + "<span> </span>";
  });
  return Ember.String.htmlSafe(reformat);
}

export default Ember.Helper.helper(cardNoDisplay);

工作正常。感谢 TBieniek