Трудно сказать, что это prettyPrint() должен возвращать?
Это кажется довольно странным, что вы не даете никаких аргументов в prettyPrint ...
Кстати, я думаю, угловой фильтр будет лучше подходит для вашей потребности, а не директивы.
[EDIT]
Это один работает "динамически" с помощью фильтра:
HTML:
<div ng-app="Knob" ng-controller="myCtrl">
<!--<input ng-model="text" type="text"/>-->
<pre ng-bind-html-unsafe="text|pretty"></pre>
</div>
ЯШ:
var App = angular.module('Knob', []);
App.controller('myCtrl', function($scope) {
setTimeout(function() {
$scope.text = "class Voila {};";
$scope.$apply();
}, 0);
});
App.filter('pretty', function(){
return function(text) {
return prettyPrintOne(text);
}
})
Вы можете увидеть это в
http://jsfiddle.net/cSXpV/1/
Вы можете раскомментировать вход непосредственно изменить текст, который будет prettyfied
Обратите внимание, что эта версией является для угловых 1.1.1 (версии вы в выбранной выше вашей первоначальной jsfiddle) , для Angular 1.2. *, вы должны использовать ng-bind-html и модуль ngSanitize
Последний вопрос: теперь, когда он динамически разрешен, можно применить методы setTimeOut и $ scope. $ apply (информация для re Адерс)
[/ EDIT]
довольно печати является частью Google Code приукрасить http://google-code-prettify.googlecode.com/svn/trunk/README.html – Snowman
нормально, ИМХО, ваша директива бесполезно, просто удалить и он работает (довольно печатный код). –
Как я могу видеть, prettyPrint предназначен для вызова в обратном вызове события, но функция ссылок не является обратным вызовом события, поэтому в этом контексте Google довольно уверенно делает какой-то беспорядок ... –