Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript document.execCommand不';我不能在angularJS工作_Javascript_Angularjs_Document - Fatal编程技术网

Javascript document.execCommand不';我不能在angularJS工作

Javascript document.execCommand不';我不能在angularJS工作,javascript,angularjs,document,Javascript,Angularjs,Document,我有一个应用程序,我想做一个编辑区,就像StackOverflow上的这个一样。我不想使用textangle指令,因为它太难理解,所以我找到了这个Javascript函数document.execCommand,它似乎正是我需要的 问题是我不能让它在AngularJs中工作。它没有给出任何错误,只是没有做任何事情 我有一个内容可编辑的div: <div contenteditable id="text"><h5>Select a part of this text!<

我有一个应用程序,我想做一个编辑区,就像StackOverflow上的这个一样。我不想使用textangle指令,因为它太难理解,所以我找到了这个Javascript函数document.execCommand,它似乎正是我需要的

问题是我不能让它在AngularJs中工作。它没有给出任何错误,只是没有做任何事情

我有一个内容可编辑的div:

<div contenteditable id="text"><h5>Select a part of this text!</h5></div> 
我已经尝试过使用
$document
,我将其注入控制器,但是它给了我一个错误提示

 TypeError: undefined is not a function at Scope.$scope.wrapBold 

textAngular实际上在内部使用document.execCommand(仅供参考,我是维护人员)

您的代码非常正确,您面临的问题是,当您单击该按钮时,您失去了contenteditable区域的焦点/选择,因此它没有插入的位置

根据记忆,你必须做两件事;使带有ng单击的元素具有属性
unselectable=“on”
,并捕获和防止同一元素上的mousedown事件。下面是我们在textAngular中设置按钮的方式:


$document的问题是,您需要使用$document[0]来获取能够调用execCommand的实际HTML DOM元素。

但似乎
document.execCommand
是Mozilla独有的API,这意味着它不能与Angular一起使用?您对此有什么建议吗?@Adel谁知道呢,但是,如果你发现使用一个可用于Firefox而不适用于其他主流浏览器的API更容易的话……可能的重复非常感谢你的明确解释。我终于成功了!git集线器链接不再有效。你能更新一下答案吗。另外,如果可能的话,你能帮我吗
$scope.wrapBold = function() {
            document.execCommand('bold', false, null);
        };
 TypeError: undefined is not a function at Scope.$scope.wrapBold