我正在尝试在我的nodejs app中使用ace编辑器,它使用angular-ui-ace。我无法在屏幕上看到ace编辑器,即使我看到html中填写了div。 我按照这里的说明进行操作:ui-ace
的index.html:
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script type="text/javascript" src="bower_components/ace-builds/src-min-noconflict/ace.js"></script>
<script type="text/javascript" src="bower_components/ace-builds/src-min-noconflict/ext-language_tools.js"></script>
<script type="text/javascript" src="bower_components/angular-ui-ace/ui-ace.js"></script>
...
...
<!-- build:js({.tmp,client}) app/app.js -->
<script src="app/app.js"></script>
<!-- injector:js -->
<script src="app/main/main.controller.js"></script>
<script src="app/main/main.js"></script>
app.js:
'use strict';
angular.module('plsdiffApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute',
'btford.socket-io',
'ui.ace',
'ui.bootstrap'
])
main.html中:
<form>
...
<div>
<div ui-ace="{ onLoad : aceLoaded, workerPath:'bower_components/ace/lib/'}"> </div>
</form>
main.less:
.ace_editor { height: 200px; }
main.controller.js:
$scope.aceLoaded = function(_editor){
// Editor part
var _session = _editor.getSession();
var _renderer = _editor.renderer;
alert('inside aceLoaded');
// Options
_editor.setReadOnly(true);
_session.setUndoManager(new ace.UndoManager());
_renderer.setShowGutter(false);
_session.setValue('<?xml version="1.0" encoding="UTF-8"?><dummy_xml id="1"></dummy_xml>');
// Events
_editor.on("changeSession", function(){ alert('changeSession'); });
_session.on("change", function(){alert('change');});
};
渲染html:
<div class=" ace_editor ace-tm" ui-ace="{ onLoad : aceLoaded, workerPath:'bower_components/ace/lib/'}">
<textarea class="ace_text-input" wrap="off" spellcheck="false" style="opacity: 0;"></textarea>
<div class="ace_gutter" style="display: none;">
<div class="ace_scroller" style="left: 0px; right: 0px; bottom: 0px;">
<div class="ace_scrollbar ace_scrollbar-v" style="display: none; width: 20px; bottom: 0px;">
<div class="ace_scrollbar ace_scrollbar-h" style="display: none; height: 20px; left: 0px; right: 0px;">
<div style="height: auto; width: auto; top: -100px; left: -100px; visibility: hidden; position: fixed; white-space: pre; font: inherit; overflow: hidden;">
</div>
但我根本没有看到王牌编辑。我做错了什么?
感谢。
答案 0 :(得分:3)
正确的答案就是这个。
要查看添加一些CSS的更好内容,例如
.ace_editor {身高:200px; }
除非你设置这个css
,否则你将无法看到编辑器答案 1 :(得分:0)
对我有用,我会请你尝试这些改变。
要为ace编辑器设置属性,请将变量添加到$ scope,如下所示
$scope.aceOptions = { theme: 'tomorrow_night_eighties', mode: 'html', useWrapMode : true }
这样做可以轻松地将各种属性添加到ace编辑器中。
现在在您的DOM(HTML代码)中,使用以下代码包含ace编辑器。
<div ui-ace="aceOptions" ng-trim="true"></div>
这将初始化你的王牌编辑器。对我来说效果很好。希望这会对你有所帮助。