使用AngularJS进行ng-bind转换插值

时间:2018-05-21 22:07:53

标签: angularjs angular-translate ng-bind

我需要渲染诸如<之类的字符。和>,它们可以包括在用户的名字或姓氏中。我使用角度转换来呈现名称,将名字和姓氏作为值传递。但是,如果名字或姓氏包含<该值不会显示。我想我需要使用类似ng-bind="translation_key | translate | values"的东西,但这是不正确的。如何在角度平移插值中使用ng-bind?这是正确的方法来渲染包含字符的翻译值,例如<,>?感谢。

*修改

这几乎可以,但清洁剂输出错误。

ng-bind="'locales.user_filter' | translate: { first: user.firstName, last: user.lastName }"
  

错误:[$ sanitize:badparse]清理程序无法解析以下html块:

1 个答案:

答案 0 :(得分:0)

在将值传递给翻译键之前,我使用了过滤器。

.filter('htmlEntities', function () {
  return function (input) {
    return String(input).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
  };
});


var first = $filter('htmlEntities')(scope.user.firstName);
var last = $filter('htmlEntities')(scope.user.lastName);
scope.displayName = $translate.instant('locales.user_filter', { first: first, last: last });

<td ng-bind-html="displayName"></td>