0

私はWeb開発に慣れていないので、ご容赦ください:)ホットタオルテンプレート(http://nuget.org/packages/HotTowel/)を使用して新しいASP.NETプロジェクトを作成し、追加しました

<script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>

index.cshtmlに。また、home.htmlを次のように変更しました。

<section>
    <div id="editor">
        function foo(items) {
            var x = "All this is syntax highlighted";
            return x;
        }
    </div>
</section>

最後に、home.jsを変更しました。

define(['services/logger'], function (logger) {
    var vm = {
        activate: activate,
        title: 'Home View'
    };

    var editor = ace.edit("editor");
    editor.setTheme("ace/theme/monokai");
    editor.getSession().setMode("ace/mode/javascript");

    return vm;

    //#region Internal Methods
    function activate() {
        logger.log('Home View Activated', null, 'home', true);
        return true;
    }
    //#endregion
});

アプリケーションを実行すると、Chromeはace.jsにUncaught TypeErrorがあることを通知します:nullのプロパティ'env'を読み取ることができません。もちろん、ホーム画面は表示されません。それを機能させるにはどうすればよいですか?

4

2 に答える 2

1

var editor = ace.edit("editor");作成前に行が実行されているように見え<div id="editor">ます。home.jsスクリプトが<div id="editor">document.onloadイベントの後に含まれているか、アクティブ化されていることを確認してください

于 2013-02-23T20:25:45.223 に答える
0

@Papa Mufflonコメントは許されないので、答えとしてあげます。HotTowelはDurandalを使用します。これはactivate、ページがアクティブになると関数を呼び出します(アクティブ化はVMによって公開されます)。

「ページ上の読み込みイベント」としてアクティブ化を使用できます。return true;活性化関数のステートメントをに変更するだけで機能するreturn yourDefinedStartupMethod();はずです。boot()shell.jsの関数の使用法を見ることができます

動作の詳細については、http://oscarmeszar.com/hottowel-with-breeze-example/を参照してください。

于 2013-04-25T08:51:16.820 に答える