2012-06-04 37 views
12

私のアプリにace editorを追加しようとしています。私は私のアプリのディレクトリに "エース/ libに/エース" ディレクトリを落とし、githubのからそれをダウンロードし、含ま:私のbodyタグ内エースエディタ "定義が定義されていません"

<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) { 

知っていますかここに私の出典があります:

<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> 
+0

上記のスニペットのdivタグに「editor」というIDがあります。あなたはしませんか?オリジナルの投稿で不正なフォーマットを修正するために更新しましたが、あなたはそれを見たかもしれません。私の実際のコードでは(上記の単純な例を取り除く前に)、上のリンクされた例のスタイルをコピーしてインポートしましたが、私のアプリケーションをエースコードだけを取り除いたときのように見えました。あまりにも。私は私の例を変更し、すぐにここで更新しようとします。 – Stinky

+0

私は同じ問題を抱えています...あなたはそれを把握しましたか? – orokusaki

+0

いいえ、申し訳ありません。私はそれが私の時間の価値がないと決めた。がんばろう。 – Stinky

答えて

7

すでにソースがある場合は、それはかなり簡単です。すべてのエースソースをコピーしたディレクトリに移動してください。

その後は、実行します。

npm install 
node Makefile.dryice.js 

RequireJSのJavaScriptライブラリがあなたのページに含まれていないため、このエラーを取得している追加の詳細 https://github.com/ajaxorg/ace/wiki/Building-ace

+1

ありがとう。私は実際にコードを作成するのを忘れていました。あなたのコメントは私にそれを思い出させました。おっとっと。 ☺ –

+0

+1 cuz、welp、私は同じでした – jakev

4

のためのWikiを参照してください。

これを修正するには、エースビルドを使用するか、ページに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> 
3

を私はDOMloadハンドラでwindow.define = ace.define;を置くことによって、それをハッキング。

-3

代わりにあなたがCDN

そして

0のようなもので

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

を置き換えるを使用することができます

+0

これはどのような方法で問題に対処していません – Pirijan

関連する問題