簡體   English   中英

angular.js綁定表達式

[英]angular.js binding expressions

我有一個類似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格式的表達式綁定到粘貼。

如果我只執行ng-bind我實際上會得到正確的數據顯示,包括<?php (在html注釋中)之類的標簽,但是格式超出了窗口。

看來prettify.js無法正確理解PHP。 當您輸入一些PHP代碼時,它只會創建未注釋的行。 盡管可以將$ sce與JavaScript和“ prettify.js”支持的其他語言結合使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM