angular.js绑定表达式

时间:2014-02-22 11:38:22

标签: javascript angularjs

我有一个像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评论中吗?)但格式不在窗口。

1 个答案:

答案 0 :(得分:0)

看起来像prettify.js无法正确理解PHP。当您输入一些PHP代码时,它只会创建一个未注释的行。这可以使用$ sce与JavaScript和“prettify.js”支持的其他语言:

http://plnkr.co/edit/ajQrnmBB83SLmFvzfiBr?p=preview