AngularJS获取文本选择并将html附加到选择的开始和结束

AngularJS获取文本选择并将html附加到选择的开始和结束,angularjs,angularjs-scope,Angularjs,Angularjs Scope,在这方面我没有什么进退两难的地方。我正在用angular js构建文本编辑器。我遇到的问题是,当用户选择段落或标题中的部分文本时,我需要将该部分文本的样式更改为粗体/斜体等 因此,基本上我需要在或中包装所选文本 我有指示 editorApp.directive('watchSelection', function() { return function(scope, elem) { elem.on('mouseup', function() { sco

在这方面我没有什么进退两难的地方。我正在用angular js构建文本编辑器。我遇到的问题是,当用户选择段落或标题中的部分文本时,我需要将该部分文本的样式更改为粗体/斜体等

因此,基本上我需要在
中包装所选文本

我有指示

editorApp.directive('watchSelection', function() {
   return function(scope, elem) {
       elem.on('mouseup', function() {
           scope.startPosition = elem[0].selectionStart;
           scope.endPosition = elem[0].selectionEnd;
           //    scope.selected = elem[0].value.substring(start, end);
           scope.$apply();
       });
   };
});
获取文本选择的起始位置和结束位置。单击按钮时,我需要将该选择包装在特定的标记中,我希望通过此功能完成此操作:

$scope.boldText = function(startPosition, endPosition) {
        $scope.start = startPosition;
        $scope.end = endPosition;
        var htmlStart = angular.element('<strong>');
        var htmlEnd = angular.element('</strong>');

        $scope.start.append(htmlStart);
        $scope.end.append(htmlEnd);
    };
$scope.boldText=函数(起始位置、结束位置){
$scope.start=startPosition;
$scope.end=endPosition;
var htmlStart=angular.element(“”);
var htmlEnd=angular.element(“”);
$scope.start.append(htmlStart);
$scope.end.append(htmlEnd);
};
我对棱角分明的人比较陌生,我可能吃了比我能承受的更多的东西:)


问题是我无法将选择内容包装到标签中。

您不需要观看任何内容

$scope.boldText = function() {
    document.execCommand('bold');
};

这将加粗所选文本。

图例!我从来不知道这存在。