如何使用Angular Controller中的ACE Editor将文本插入特定位置

时间:2017-08-23 11:16:30

标签: javascript angularjs ace-editor

我正在Ace编辑器中创建一个实时协作编辑器,我找不到任何关于在编辑器中的某个位置插入文本的文档。

实际上我想在用户点击按钮时在光标位置添加文字。

我使用了以下代码:

<div ui-ace="aceOptions" ng-model="content"></div>

在角度控制器中,我使用了以下代码,

 $scope.aceOptions = {
   mode : 'Javascript',
   theme : 'dreamweaver'
 };

 //content of ace editor
 $scope.content = "test";

 //user button click for adding text
 $scope.addTextOnClick = function(){
   //Here i have to get current cursor and needs to insert text
   //Which map to content and insert into it
 }

请帮我解决此问题。

1 个答案:

答案 0 :(得分:1)

您可以使用Edit.getCurrentPosition方法获取光标位置。

例如,您可以使用该位置计算文本中的位置,并在该文本中插入一些内容。

我还建议您查看Ace docs

以下是如何获取编辑器实例:https://github.com/angular-ui/ui-ace#ace-instance-direct-access

  

将使用Ace Editor实例作为第一个参数

调用$ scope.aceLoaded函数

查看此标题下方的示例。