在 Angularjs 中显示之前格式化文本
Format a text before displaying it in Angularjs
我有这样的文字:
Blablabla
Hello
How are you?
但它必须存储在我的数据库中的同一个文本字段中,如下所示:
Blablabla Hello How are you?
我正在使用 Angular,我想知道如何在像这样在模板中显示之前格式化数据库文本。
<p>{{ value }}</p>
我知道我应该在数据库中添加一个分隔符,但我不知道是否可以添加一个'\n',然后在显示之前格式化文本。
试试这个
在你的控制器中
$scope.value = $scope.value.replace(/\n/g, '<br/>');
$scope.trustedHtml = $sce.trustAsHtml($scope.value);
在您看来
<p ng-bind-html="trustedHtml"></p>
或
你可以创建一个工厂在任何地方使用它
angular.module('app').filter('trustedHtml', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
};
});
在你的控制器中
$scope.value = $scope.value.replace(/\n/g, '<br/>');
在您看来
<p ng-bind-html="value | trustedHtml"></p>
解决方案:
<p ng-bind-html="value"></p>
所以Angular$sanitize删除了可能像'script'
这样的恶意标签
我有这样的文字:
Blablabla
Hello
How are you?
但它必须存储在我的数据库中的同一个文本字段中,如下所示:
Blablabla Hello How are you?
我正在使用 Angular,我想知道如何在像这样在模板中显示之前格式化数据库文本。
<p>{{ value }}</p>
我知道我应该在数据库中添加一个分隔符,但我不知道是否可以添加一个'\n',然后在显示之前格式化文本。
试试这个
在你的控制器中
$scope.value = $scope.value.replace(/\n/g, '<br/>');
$scope.trustedHtml = $sce.trustAsHtml($scope.value);
在您看来
<p ng-bind-html="trustedHtml"></p>
或
你可以创建一个工厂在任何地方使用它
angular.module('app').filter('trustedHtml', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
};
});
在你的控制器中
$scope.value = $scope.value.replace(/\n/g, '<br/>');
在您看来
<p ng-bind-html="value | trustedHtml"></p>
解决方案:
<p ng-bind-html="value"></p>
所以Angular$sanitize删除了可能像'script'
这样的恶意标签