2013-02-23 4 views
0

웹 개발에 익숙하지 않으므로 자비를 베풀어주십시오. 뜨거운 타월 템플릿으로 새 ASP.NET 프로젝트를 만들었습니다 (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> 

to index.cshtml. 또한, 나는이처럼 보이도록 home.html을 수정 : 나는 응용 프로그램을 실행할 때

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 
}); 

은, 크롬 ace.js가있다라고 나에게 이야기한다 : 마침내

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

, 나는 home.js 변경 잡히지 않은 TypeError : null의 'env'속성을 읽을 수 없습니다. 물론 홈 화면이 나타나지 않습니다. 작동 시키려면 어떻게해야합니까? var editor = ace.edit("editor"); 라인 <div id="editor">를 만들기 전에, 반드시 home.js 스크립트 <div id="editor"> 이후에 포함되어 있는지 확인 실행 또는 내가 그래서 것이다 언급을 허용하고 있지 않다 document.onload 이벤트

답변

1

보인다 답으로 써라. HotTowel은 페이지가 활성화 될 때 activate 함수를 호출하는 Durandal을 사용합니다 (VM에 의해 활성화 됨).

'페이지로드 이벤트'로 활성화를 사용할 수 있습니다. 활성화 기능에서 return true; 문을 return yourDefinedStartupMethod();으로 변경하면됩니다. shell.js에있는 boot() 함수 사용법을 살펴보십시오.

여기에 더 자세한 동작 설명이 있습니다 http://oscarmeszar.com/hottowel-with-breeze-example/.

+0

감사합니다. onClick 이벤트 리스너를 div에 추가하고 var 편집기 = ... 코드를 호출하면 작동합니다. 그러나 이것은 차선책입니다. 핫 타월 웹 응용 프로그램의 섹션에 초기화 코드를 호출하는 방법은 무엇입니까? –

+0

뜨거운 타월에 대한 구체적인 내용은 모르겠지만 일반적인 html 페이지에서는 모든 스크립트를 문서 끝으로 이동하거나 check if (! document.getElementById ("editor")) 문서를 추가합니다. .addEventListener ("load", initEditor, true) else initEditor()' –

0

@Papa Mufflon 후 활성화 같은