如何在ng2-ace-editor的单个组件中使用多个ace编辑器

时间:2019-07-26 10:28:57

标签: angular ace-editor

我们如何在单个组件中成角度地使用多个ace编辑器。

我想在一个组件中使用多个编辑器,如下所示。

<div #editor ace-editor [(text)]="text" [mode]="'groovy'" [options]="options" [readOnly]="false" [theme]="'eclipse'" [autoUpdateContent]="true" [durationBeforeCallback]="1000" (textChanged)="onChange($event)" style="min-height: 300px; width:100%; overflow: auto;"> </div>

<div #editor ace-editor [(text)]="text" [mode]="'groovy'" [options]="options" [readOnly]="false" [theme]="'eclipse'" [autoUpdateContent]="true" [durationBeforeCallback]="1000" (textChanged)="onChange($event)" style="min-height: 300px; width:100%; overflow: auto;"> </div>

我们需要使用多个编辑器实例。我们该怎么做?

我们正在将自定义字符串加载到编辑器中,以实现自动填充,如下所示。我想为两个不同的编辑器使用两个不同的自定义字符串。

var langTools = ace.require("ace/ext/language_tools");
 var stepLineCompleter = {

 getCompletions: function (editor, session, pos, prefix, callback) {
 var completions = [];
 x.forEach(function (w) {
 completions.push({
 value: w,
 meta: y,
 name: y
 });
 });

 callback(null, completions);
 }
 }
 langTools.addCompleter(stepLineCompleter);

1 个答案:

答案 0 :(得分:0)

您需要进行以下更改,它应该可以工作

将#editor更改为任何其他术语,例如#editor1,它应该可以工作。

<div #editor ace-editor [(text)]="text" [mode]="'groovy'" [options]="options" [readOnly]="false" [theme]="'eclipse'" [autoUpdateContent]="true" [durationBeforeCallback]="1000" (textChanged)="onChange($event)" style="min-height: 300px; width:100%; overflow: auto;"> </div>

<div #editor1 ace-editor [(text)]="text" [mode]="'groovy'" [options]="options" [readOnly]="false" [theme]="'eclipse'" [autoUpdateContent]="true" [durationBeforeCallback]="1000" (textChanged)="onChange($event)" style="min-height: 300px; width:100%; overflow: auto;"> </div>

您还可以在下面的链接中查看stackblitz示例:

https://stackblitz.com/edit/ace-code-editor?file=src%2Fapp%2Fapp.component.html