2017-08-23 1 views
0

Ich arbeite an einem Echtzeit-Collaborative-Editor innerhalb Ace Editor, und ich konnte keine Dokumente zum Einfügen von Text an einer bestimmten Stelle im Editor finden.Wie man Text mit dem ACE-Editor von Angular Controller in eine bestimmte Position einfügt

Eigentlich möchte ich Text an der Cursorposition hinzufügen, wenn Benutzer auf den Button klicken.

Ich habe mit folgendem Code:

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

Und in Winkelregler habe ich folgenden Code verwendet,

$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 
} 

Bitte helfen Sie mir, dieses Problem zu lösen.

+0

Versuchen Sie mit ng-bind. Du kannst ng-model nicht für ein div-Tag verwenden – Vivz

Antwort

1

Sie können die Cursorposition mit der Methode Edit.getCurrentPosition abrufen.

Nach, zum Beispiel, dass Sie Platz im Text mit dieser Position berechnen und etwas zu diesem Text einfügen können.

Ich schlage auch vor, Ace docs zu überprüfen.

So erhalten Sie Editor-Instanz: https://github.com/angular-ui/ui-ace#ace-instance-direct-access.

die Funktion $ scope.aceLoaded wird mit der Ace-Editor-Instanz als erstes Argument

Siehe Beispiel unter diesen Header aufgerufen werden.

+0

Ja, ich habe das benutzt, sorry, aber bitte sag mir, wie ich das vom Editor bekommen könnte, weil ich als Direktive –

+0

verwendet habe. Ich habe bereits gesagt: Versuch die Dokumente zu lesen. Ich habe meine Antwort aktualisiert, um eine Editor-Instanz zu erhalten. –

+0

Danke, habe die Lösung –

Verwandte Themen