2017-07-10 88 views
0

在安全我送從我的服務器編碼的所有特殊字符的情況下(例如存儲在我的DB符號<輸出爲&lt;)。 我有一個輸入在我的形式AngularJS:ngModel - 轉換的特殊符號

<input ng-model="form.description">

但被示出的值,被插入到所述輸入原樣&lt;。我應該怎麼做,要改變NG-模型實際<? 我已經找到了很多有關$sce卻無法創造出一個工作方法。

目前我正在考慮指令

function TrustAsHTMLDirective($sce) { 
     return { 
      restrict: 'A', 
      scope: { 
       ngModel: '=' 
      }, 
      link: function(scope, elem) { 
       scope.$watch('ngModel', function (after, before) { 
        if (after && after !== before) { 
         scope.ngModel = $sce.trustAsHtml(elem[0].value); 
        } 
       }) 
      } 
     }; 

這應該這樣<input ng-model="form.description" trust-as-html>使用,但它不能正常工作,而且可能我需要這在我的應用程序的所有輸入。

所以,問題是 - 如何改變NG-模型實際價值,但要保持我的應用程序安全嗎?

謝謝!

回答

-1

可以使用lodash usescape功能轉換成HTML實體&,<,>,",並且'字符串到其對應的字符。

語法

_.unescape([string='']) 

實施例:

_.unescape( '佛瑞德,巴尼,&卵石');

輸出=>「佛瑞德,巴尼,&卵石」

+0

我不能使用的,因爲安全原因的功能。 –