2017-09-19 68 views
0

問題:我很難替換「& amp」到&。他們是一種使用JavaScript來代替&符號到&的方法。如何使用替換& with&in angularjs

<div class="col-md-4 no-margin padding" id="change"> 
<strong>Specialty: </strong>{{e.Specialty}} 
</div> 

我想替換「& amp」當它從數據庫抓取數據到「&」。

所以目前,它會顯示「護理&放大器;醫生」而不是「護理&醫生」

我怎樣才能做到這一點使用替換。我嘗試過ng-show,Santize和ng-bind-html,但還沒有爲我制定出來。

回答

0

您可以嘗試使用javascript手動更新&amp ;

{{ e.Specialty.replace(/&amp ;/g, '&') }} 

對於它的價值,HTML應該自動轉化&amp;&。看起來你在&amp ;裏面有一個流氓空格鍵,它可以防止這種情況的發生。

+0

@約瑟夫,你能不能給我,如果你不介意什麼解釋?當我實施你的方法時,它只是刷新頁面。 – Robert

+0

'g'意味着全球替代。只要'& ;'出現在一個字符串中,即使它出現多次,它也應該被替換。 –

+0

'$ scope.e.Specialty = oldString.replace(/ & ;/g,'&');' 您可以嘗試在模型呈現在視圖中之前將其替換。 –

0

我會用一個過濾器...

的JavaScript:

myApp.filter('andFilter', function() { 
    return function(item) { 
    return item.replace(/&amp ;/g, '&'); 
    } 
}); 

HTML:

<div class="col-md-4 no-margin padding" id="change"> 
<strong>Specialty: </strong>{{e.Specialty | andFilter}} 
</div> 
1

你必須使用$ SCE服務和trustAsHtml使角不會做編碼並顯示輸出而不輸出編碼。細節在這裏https://docs.angularjs.org/api/ngSanitize

步驟是如下─

  1. 包括ngSanitize模塊 - angular.module( '應用',[ 'ngSanitize']);
  2. 在您的控制器中注入$ sce服務
  3. 使用 - vm.Specialty = $ sce.trustAsHtml(專業)的最終輸出;
  4. 顯示給用戶,而不輸出編碼 - 專業:綁定-HTML編譯= e.Specialty
+0

@ ManishSingh:不知道該怎麼做第3步。 – Robert

+0

它應該在控制器中實現 – ManishSingh

0

這未必是最好的方式,但對於那些你需要做這個,你可以使用這樣的:/克代表

var parser = new DOMParser; 
 
var dom = parser.parseFromString(YOURSTRING,'text/html'); 
 
var decodedString = dom.body.textContent;