Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用谷歌代码美化requireJS_Javascript_Requirejs - Fatal编程技术网

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, "&lt;")
                    .replace(/>/g, "&gt;")
                    .replace(/ /g, "&nbsp;")
                    .replace(/\'/g, "&#39;")
                    .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