17

アプリにace エディターを追加しようとしています。github からダウンロードし、「ace/lib/ace」ディレクトリをアプリのディレクトリにドロップしました。

<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>"

私のボディタグと:

editor = ace.edit "editor"

私のスクリプトタグで。Chrome と Firefox でページを読み込もうとしましたが、ace.js:46 で「定義が定義されていません」というメッセージが表示されます。ace.js の行は次のとおりです。

define(function(require, exports, module) {

ace が define() 関数の存在を期待している理由と、それが見つからない理由を知っている人はいますか? ここに私の情報源があります:

<html>
  <body>
    <div id="editor">some text</div>
    <script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>
    <script>
      var editor = ace.edit("editor");
    </script>
  </body>
</html>
4

5 に答える 5

7

すでにソースを持っている場合でも、それを行うのは非常に簡単です。すべての ace ソースをコピーしたディレクトリに移動するだけです。

次に、次のようにします。

npm install
node Makefile.dryice.js

詳細については、wiki を参照してください https://github.com/ajaxorg/ace/wiki/Building-ace

于 2012-08-12T02:36:09.900 に答える
6

window.define = ace.define;DOMload ハンドラーを入れてハッキングしました。

于 2013-11-10T15:04:18.713 に答える
5

RequireJS JavaScript ライブラリがページに含まれていないため、このエラーが発生しています。

これを修正するには、ace ビルドを使用するか、ページに RequireJS を含めます。

RequireJS を含めることを選択した場合、html フラグメントは次のようになります。

<!-- Editor will go here -->
<div id="editor"></div>

<!-- Load RequireJS -->
<script src="lib/requirejs/require.js"></script>

<!-- Initialize ace -->
<script>

    // Tell RequireJS where ace is located
    require.config({
        paths: {
            'ace': 'lib/ace'
        }
    });

    // Load the ace module
    require(['ace/ace'], function(ace) {
        // Set up the editor
        var editor = ace.edit('editor');
        editor.setTheme('ace/theme/monokai');
        editor.getSession().setMode('ace/mode/javascript');
        // etc...
    });
</script>
于 2013-02-15T07:04:08.327 に答える