AngularJS で Google Code Prettify を使用して単純なタブ付きコード ビューアーを作成しましたが、タブをクリックするとき (および他のアクションを実行するとき) にパフォーマンスが低下するという問題があります。
関連するプランカーは次のとおりです。http://plnkr.co/edit/x25vea?p=preview
index.html:
<div class="tabs" ng-controller="TabController as panel">
<ul class="nav-list">
<li ng-repeat="fileName in post.custom_fields | fileNames">
<a href="" ng-class="{selected: panel.isSelected($index)}" ng-click="panel.setTab($index)" ng-cloak>{{fileName[0]}}</a>
</li>
</ul>
<div ng-repeat="code in post.custom_fields | codeSnippets" ng-show="panel.isSelected($index)">
<pre class="prettyprint" ng-bind-html="code | prettyprint"></pre>
</div>
</div>
タブコントローラー:
app.controller('TabController', ['$scope', function ($scope) {
this.tab = 0;
this.setTab = function (setTab) {
this.tab = setTab;
};
this.isSelected = function (checkTab) {
return this.tab === checkTab;
};
}]);
フィルター:
app.filter('prettyprint', function () {
return function (text) {
return prettyPrintOne(text, '', true);
};
});
タブ移動は瞬時にできると思いますが、今行っていることを別の方法またはより良い方法で行う方法がわかりません。
どんな助けでも大歓迎です。ありがとう!