AngularJS 和 prettyprint 的动态内容
Dynamic content with AngularJS and prettyprint
有一些代码块 <pre>...</pre>
包含 angularJS 的动态内容,必须将其打印出来。当内容更新时,在 html
view
中有两个 - 旧的和新的(下次更新时 - 三个,依此类推..)
html
<div ng-repeat="(index, issue) in issues track by $index">
. . .
<div>
<pre class="prettyprint linenums">{{issue.code}}</pre>
</div>
. . .
</div>
这是不正确的..每个问题都应该只有它自己的代码..
通过将内容包装到 <div>
并使用 $sce
:
解决了这个问题
html
<div ng-repeat="(index, issue) in issues track by $index">
. . .
<div ng-bind-html="getCode(issue.code)"></div>
. . .
</div>
控制器
app.controller('appCtrl', ['$scope', '$sce', function(scope, sce) {
...
scope.getCode = function(code) {
// console.log(code);
return sce.trustAsHtml("<pre class='prettyprint linenums'>" + code + "</pre>");
};
...
}
每次内容更新后都应调用漂亮的打印方法
PR.prettyPrint(); // google-code-prettify
有一些代码块 <pre>...</pre>
包含 angularJS 的动态内容,必须将其打印出来。当内容更新时,在 html
view
中有两个 - 旧的和新的(下次更新时 - 三个,依此类推..)
html
<div ng-repeat="(index, issue) in issues track by $index">
. . .
<div>
<pre class="prettyprint linenums">{{issue.code}}</pre>
</div>
. . .
</div>
这是不正确的..每个问题都应该只有它自己的代码..
通过将内容包装到 <div>
并使用 $sce
:
html
<div ng-repeat="(index, issue) in issues track by $index">
. . .
<div ng-bind-html="getCode(issue.code)"></div>
. . .
</div>
控制器
app.controller('appCtrl', ['$scope', '$sce', function(scope, sce) {
...
scope.getCode = function(code) {
// console.log(code);
return sce.trustAsHtml("<pre class='prettyprint linenums'>" + code + "</pre>");
};
...
}
每次内容更新后都应调用漂亮的打印方法
PR.prettyPrint(); // google-code-prettify