Insertion de texte à la position actuelle du curseur dans Textarea en utilisant AngularJs Ng-Click

Nous essayons de mettre en œuvre comme ci-dessous l'exigence. Cliquez sur un bouton pour générer un texte et il sera ajouté dans textarea. Le bouton utilise Ng-Onclick.

Le code de bouton est ci-dessous.

<input type="submit" value="Add to form" class="btn btn-primary" ng-click="addToFormID($index)" /> 

Mais beaucoup de boutons seront là comme si j'ajoute 4 composants 4 boutons seront là pour générer la formule.

Et Voici mon code TextArea:

  <textarea id="summarFormula" ng-model=".Summarisation" ng-change="setSummarisationFormulaDynamic()" cols="100" rows="4"></textarea> 

Et voici mon script.

  $scope.addToFormID = function(index){ if( $scope.vm.SummarisationForm==null) { $scope.vm.SummarisationForm ="["+ $scope.vm.Dependencies[index].NeName+":{"+$scope.vm.Dependencies[index].DbId+","+$scope.vm.Dependencies[index].VersionId+"}]"; }else $scope.vm.Summarisation+="["+ $scope.vm.Dependencies[index].Name+":{"+$scope.vm.Dependencies[index].Id+","+$scope.vm.Dependencies[index].VersionId+"}]"; $scope.setSummarisationFormDynamic(); } 

Nous pouvons voir que dans la partie $ scope.vm.SummarisationForm + = donc, il sera + la prochaine formule à la précédente, donc je veux modifier celle-ci et doit ajouter le contenu où je garde le curseur.

Maintenant, qu'est-ce que je cliquene, il l'ajoute à la fin du contenu, si j'entre dans la touche enter en gardant le curseur dans la première ligne de la ligne suivante, il l'ajoute à la même ligne que déjà le texte est là, donc je veux trouver La position du curseur et insérer dans le texte où exactement garder le curseur ou entrer entrer la position de la clé.

Je suis très nouveau pour les jj angulaires, alors aidez-moi avec l'idée de base avec un bouton comment puis-je mettre en œuvre et modifier le script comment puis-je le faire.?

Modifier: C'est l'application ASP.NET MVC5.

Si vous avez besoin de plus de détails, faites-le moi savoir.

Merci à l'avance à tous.

Voici le héros que mes problèmes ont été résolus. Qui est vraiment génial, il a résolu mon problème.

Et ce qui est exactement fait est que j'ai créé un élément de directive tel que mentionné dans ce lien et a appelé cette directive à mon avis.

Boom, cela a fonctionné.

http://plnkr.co/edit/Xx1SHwQI2t6ji31COneO?p=preview

  app.directive('myText', ['$rootScope', function($rootScope) { return { link: function(scope, element, attrs) { $rootScope.$on('add', function(e, val) { var domElement = element[0]; if (document.selection) { domElement.focus(); var sel = document.selection.createRange(); sel.text = val; domElement.focus(); } else if (domElement.selectionStart || domElement.selectionStart === 0) { var startPos = domElement.selectionStart; var endPos = domElement.selectionEnd; var scrollTop = domElement.scrollTop; domElement.value = domElement.value.substring(0, startPos) + val + domElement.value.substring(endPos, domElement.value.length); domElement.focus(); domElement.selectionStart = startPos + val.length; domElement.selectionEnd = startPos + val.length; domElement.scrollTop = scrollTop; } else { domElement.value += val; domElement.focus(); } }); } } }]) 

View Calling like this,

Le nom de la directive est, myText.