Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angular.js绑定表达式_Javascript_Angularjs - Fatal编程技术网

Javascript angular.js绑定表达式

Javascript angular.js绑定表达式,javascript,angularjs,Javascript,Angularjs,我有一个类似pastebin的应用程序。我希望能够粘贴代码,并将代码输出给用户,带有一些亮点和其他幻想。代码可以是任何语言。我用谷歌的prettify.js来做这个 代码以字符串形式保存在数据库中。以下是我获取数据的方式: $http.get('/paste/' + $scope.paste).success(getCallback); var getCallback = function(data) { setTimeout(function() { $scope.p

我有一个类似pastebin的应用程序。我希望能够粘贴代码,并将代码输出给用户,带有一些亮点和其他幻想。代码可以是任何语言。我用谷歌的prettify.js来做这个

代码以字符串形式保存在数据库中。以下是我获取数据的方式:

$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>


结果是一个好看的粘贴。然而,当有像
这样的标签时,angular Sanitarizer就会失败。看起来prettify.js不能正确理解PHP。当您输入一些PHP代码时,它只会创建一行没有注释的代码。这可以通过使用$sce和JavaScript以及“prettify.js”支持的其他语言来实现,不过:


看看我是否理解:您想继续显示代码(使用绑定html),同时对代码应用html样式的格式设置吗?您看过这个吗@Jorg是的,代码需要样式化,而不仅仅是“简单”代码必须突出显示。这个修饰给了我生成的html,可以绑定到ng bind html,但是解析器不挖掘html/php(可能是其他语言)元素。@Mark Sullivan是的,刚刚看了一下。将不得不调查如何实现这一点。谢谢你的抢注。但是,我绝对肯定这不是一个prettify.js的东西。如果您使用html元素尝试plunker,它也会失败。事实上,任何以“我已经用一个小PHP代码段和console.log(text)更新了Plunkr”开头的东西。至少“prettyPrintOne”函数给了我这样的信息:
  • 。据报道,PRISM是prettify.js的更好的替代品——它甚至被用于Brendan Eich的个人博客。好的,谢谢,我会进一步调查的。我已经实现了prettyprint,但也许我会尝试使用nsa.js,打开后门。