如何通过angularjs在textarea光标位置添加文本

时间:2017-07-22 06:39:30

标签: angularjs text add appendtext

我希望示例代码将文本添加到textarea angularjs代码中,任何人都可以提供帮助。

使用{userName}#userName#等一些自定义名称字段编写短信。这些是onclick事件,当用户点击时,应该在textarea框中的光标位置添加受尊重的文本。

1 个答案:

答案 0 :(得分:0)

检查此链接并在您的应用中使用该指令 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();
    }

  });
 }
}
}])