我是网络开发的新手,所以请怜悯:) 我用热毛巾模板(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'。当然,主屏幕不会出现。我该怎么做才能让它发挥作用?
答案 0 :(得分:1)
var editor = ace.edit("editor");
之前,看起来像<div id="editor">
行,确保在<div id="editor">
之后包含home.js脚本或在document.onload事件之后激活
答案 1 :(得分:0)
activate
函数(激活由vm公开)。
您可以将“激活”用作“页面加载事件”。
只需将activate函数中的return true;
语句更改为return yourDefinedStartupMethod();
即可。您可以查看shell.js中的boot()
函数用法
此处有一个更详细的行为描述http://oscarmeszar.com/hottowel-with-breeze-example/。