我有一个像pastebin一样的应用程序。我希望能够粘贴代码,并将代码输出给用户,具有一些突出显示和其他功能。代码可以是任何语言。我使用google的prettify.js。
代码以字符串形式保存在db中。以下是我如何得到数据:
$http.get('/paste/' + $scope.paste).success(getCallback);
var getCallback = function(data) {
setTimeout(function() {
$scope.paste = data[0].code;
$scope.$apply();
}, 0);
};
到目前为止一切顺利。当我想对粘贴的代码应用一些突出显示时,我已经完成了这个。
app.filter('pretty', function() {
return function(text) {
// a method in the prettify.js
return prettyPrintOne(text, '', true);
};
});
我这样申请:
<pre ng-bind-html="paste|pretty"></pre>
结果是一个漂亮的粘贴。然而,当像<?php
这样的类似于它不理解的标签时,角度消毒器会失败,或者标签是纯html元素<div>
那么我怎么能将带有html格式的表达式绑定到粘贴。< / p>
如果我只做ng-bind
我实际上会显示正确的数据,包括像<?php
这样的标签(在html评论中吗?)但格式不在窗口。
答案 0 :(得分:0)
看起来像prettify.js无法正确理解PHP。当您输入一些PHP代码时,它只会创建一个未注释的行。这可以使用$ sce与JavaScript和“prettify.js”支持的其他语言: