2014-10-17 54 views
0

首先:我絕對是AngularJS的新手,但是使用其他語言的MVC項目。在AngularJS中包含HTML的綁定控制器屬性

我嘗試綁定一個包含HTML的Property。

這是代碼:

HTML:

<div ng-controller="MyController"> 
<p>{{About}}</p> 
</div> 

JS:

.controller('MyController', ['$scope', function($scope) { 
$scope.About="This is me<br/>and not you!" 
} 

現在的HTML編碼,我不想(在<br/>應導致換行符)

我已經嘗試過<p ng-bind-html="About"></p>但是導致根本沒有輸出

回答

2

你需要讓HTML文本中的默認情況下它角沒有。

Plunker:http://plnkr.co/edit/K4KRCQi4Rpe99MJel5J2?p=preview

Angular Docs for $sce

嚴格語境逃逸(SCE)爲其中AngularJS要求在某些情況下 綁定,從而得到以被標記爲 安全使用一個值的模式該背景。這種上下文的一個例子是綁定用戶通過ng-bind-html控制的任意html。我們將這些上下文稱爲 作爲特權或SCE上下文。

<div ng-controller="htmlChar" ng-bind-html="about"></div> 

<script> 

    angular.module("app",[]) 
    .controller("htmlChar",function($scope, $sce){ 
    $scope.about= $sce.trustAsHtml("This is me<br/>and not you!"); 
    }); 

    angular.bootstrap(document,["app"]); 

</script> 
1

您不需要通過模型綁定在AngularJS中插入html,因爲框架的哲學是保持HTML(頁面的結構和樣式)完整,並且只綁定要在該HTML內顯示的數據。

如果您確實需要將HTML標籤綁定到數據中,則需要使用$sanitize service

0

你必須在這裏使用的角度編譯功能,經過聯繫以獲取更多信息angular compile