我希望能够使用AngularJS从输入字段捕获文本/字符串的突出显示部分。我不确定从哪里开始解决这个问题。
例如,我有一个textarea:
<textarea ng-model="input" placeholder="type your input">
如何使用他/她的鼠标指针捕获用户突出显示或选择的文本部分?
答案 0 :(得分:2)
您可以创建一个附加到textarea的指令,并为当前突出显示的文本输入元素事件和监视器。像
这样的东西
Uncaught TypeError: b.set is not a function
var app = angular.module('module', []);
app.controller('MainCtrl', function($scope) {
$scope.selectedText = '';
$scope.textSelected = function(text){
$scope.selectedText = text;
$scope.$apply();
//alert(text);
};
});
app.directive('inputFieldSelection', function(){
return{
restrict: 'A',
scope:{
onSelected: '='
},
link:function(scope, elem, attrs){
elem.on('select', function(){
var text = elem.val().substring(elem.prop('selectionStart'),
elem.prop('selectionEnd'));
scope.onSelected(text);
});
elem.on('blur', function(){ scope.onSelected('') });
elem.on('keydown', function(){ scope.onSelected('')});
elem.on('mousedown', function(){ scope.onSelected('') });
}
}
});
答案 1 :(得分:0)
angular.element('[ng-model="YOUR_MODEL_NAME_HERE"]').prop('selectionStart');
angular.element('[ng-model="YOUR_MODEL_NAME_HERE"]').prop('selectionEnd');
&#13;
您可以使用&#39; selectionStart&#39;和&#39; selectionEnd&#39;获得选择范围。希望这有帮助