我正在尝试使用$ sce.trustAsHtml作为过滤器复制ng-bind-html-unsafe,如下所示:https://stackoverflow.com/a/19705096/1463434
当我尝试传递如下文字时:
"Code: <?php echo strtotime($user->created_at)*1000; ?>"
它呈现为:
"Code: created_at)*1000; ?>"
如何呈现整个文本?
更新
我的代码如下:
HTML: &lt; p ng-bind-html =“message.messagebody | newlines | unsafe”&gt;&lt; / p&gt;
过滤器:
app.filter('newlines', function () {
return function (text) {
return text.replace(/\n/g, '<br/>');
}
})
app.filter('unsafe', ['$sce',
function ($sce) {
return function (val) {
return $sce.trustAsHtml(val);
}
}
])
我正在使用ng-bind-html,这样无论何时输入新行,它都会被转换为“&lt; br /&gt;”标记并在浏览器中呈现时显示为新行。
答案 0 :(得分:0)
请参阅此fiddle。
只需在html中使用angular变量。
HTML
<div ng-app="app" ng-controller="TestController">
<h3>Not worked</h13>
<pre>Code: <?php echo strtotime($user->created_at)*1000; ?></pre>
<h3>Worked</h3>
<pre>{{data.html}}</pre>
</div>
的JavaScript
var app = angular.module('app', []);
app.controller('TestController', function($scope){
$scope.data = {};
$scope.data.html = "Code: <?php echo strtotime($user->created_at)*1000; ?>";
});