2013-06-03 57 views
2

NG重複內輸出HTML的我$scope包含以下items在AngularJS

$scope.items= [ 
    { body : '<span> value </span>' }, 
    { body : '<span> whatever </span>' } 
]; 

當我嘗試

<li ng-repeat="item in items">{{item.body}}</li> 

的HTML輸出是:

<li>&lt;span&gt; value &lt;/span&gt;</li> 
<li>&lt;span&gt; whatever &lt;/span&gt;</li> 

,然後將文本瀏覽器上顯示的是這樣的:

<span> value </span> 
<span> whatever </span> 

我該如何逃避span並使它們被解析爲HTML?

編輯:接受的答案中的鏈接不再適用於最新版本。目前this is how you do it

回答

3

看ngBindHtmlUnsafe如果你絕對相信,你正在創建的代碼不能包含用戶數據的任何漏洞:

http://docs.angularjs.org/api/ng.directive:ngBindHtmlUnsafe

看ngBindHtml從清理模塊,如果你需要清理一個可能的危險HTML的一部分:

http://docs.angularjs.org/api/ngSanitize.directive:ngBindHtml

+0

這正是我所需要的。測試和工作像魅力。包含HTML的字符串正在服務器上生成以將數據與視圖分開,因此沒有什麼可擔心的。非常感謝。 –

+0

這工作正常。但是,如果HTML內有'

0

在接受答案的鏈接,A的當前版本不再起作用ngular。 你可以這樣做,如果你確定它已經過消毒,禁用轉義。更新了嚴格上下文轉義的鏈接:https://docs.angularjs.org/api/ng/service/%24sce

var app = angular.module('search-app') 
       .config(['$sceProvider', function ($sceProvider) { 
        $sceProvider.enabled(false) ;// global override 
        }]); 

    app.controller('SearchController', function ($scope, $http) { 

    }