Javascript 使用谷歌代码美化requireJS
我的要求是Javascript 使用谷歌代码美化requireJS,javascript,requirejs,Javascript,Requirejs,我的要求是 requirejs.config({ appDir:"/static", paths:{ 'jquery' : ["../bower_components/jquery/dist/jquery.min"], 'angular': ["../bower_components/angular/angular"], 'domReady': ["../bower_components/requirejs-domready/dom
requirejs.config({
appDir:"/static",
paths:{
'jquery' : ["../bower_components/jquery/dist/jquery.min"],
'angular': ["../bower_components/angular/angular"],
'domReady': ["../bower_components/requirejs-domready/domReady"],
"prettify": "/static/bower_components/google-code-prettify/src/prettify"
},
shim:{
'angular':{
"exports":"angular",
deps: ["jquery"]
}
}
})
require(["jquery", "angular", "domReady", "prettify"],
function($, angular, domReady, prettify){
angular.module("docpage", ["desktop"])
.controller("docController", function($rootScope){
$rootScope.dataReady = function(){
prettyPrint()
}
})
domReady(function(){
angular.bootstrap($("#doc"), ['docpage'])
angular.bootstrap($("#news"), ['desktop'])
})
})
我按照所说的进行了配置,但结果不正确,代码突出显示失败。我请求帮助,如何配置具有代码突出显示功能的requireJS?当您应该使用AMD模块code.innerHTML=prettify.prettyPrintOnecode.innerHTML时,您正在尝试使用全局上下文prettyPrint JS:
.controller("codeController", function($scope) {
$scope.init = function(code){
$scope.codedom = code
}
})
.directive('prettyprint', function() {
return {
restrict: 'C',
link: function postLink(scope, element, attrs) {
element.html(prettyPrintOne(scope.codedom.content
.replace(/&/g, "&")
.replace(/\"/g, """)
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/ /g, " ")
.replace(/\'/g, "'")
.replace(/\n/g, "<br>"),
scope.codedom.meta.lang.toLowerCase()))
}
}
})
HTML:
我编写了code.innerHTML=prettify.prettyPrintOnecode.innerHTML;在“prettyPrint”之前,但它不起作用。@lincoln我假设您将代码更改为元素。您需要稍微重写它以使用jQuery元素。您还在jQuery元素上创建一个名为dataReady的方法。您在什么时候调用此方法?
<div class="section sec-editable" ng-controller="codeController" ng-init="init(code)">
<span>{{code.meta.lang}}</span>
<pre class="prettyprint">{{code.content}}</pre>
</div