javascript - 内容可编辑区域中的 Angular Directive(指令)

标签 javascript angularjs wysiwyg execcommand

我无法激活插入我网站上可内容编辑区域的 Angular 指令。如果我使用scope.$apply(),它会说它已经在运行。

JS

angular.module('app', [])

.directive('edit', function(){
  return {
    link: function(scope, elm, attr){
      scope.url = "http://www.google.com";
      scope.press = function(){
        document.execCommand('insertHTML', false, '<a ng-href="{{url}}">test</a>');
      };
    }
  };
});

HTML:

<div edit contenteditable="true">Dummy Text</div>
<button ng-click="press()">Press</button>

我希望它编译 url 并在 href 参数中提供有效链接,而不是显示原始代码。

JSBin:http://jsbin.com/moponige/1/edit

最佳答案

您可以在插入 HTML 之前使用 $compile 服务进行编译,

$compile('<a ng-href="{{url}}">test</a>')(scope)

关于javascript - 内容可编辑区域中的 Angular Directive(指令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22369190/

相关文章:

javascript - AngularJS 指令的 link() 函数中的 DOM 元素未准备好

javascript - wysihtml5 - 如何禁用下划线标签

html - 创建基于 <canvas> 的 HTML5 文本编辑器

jquery - 拖动的元素没有返回到正确的位置

javascript - 监视路由并更改指令范围内的变量。

javascript - FCKeditor 的最大字符数

javascript - 如何删除或隐藏li

php - 单击按钮时在输入字段中显示文本(php/html)

javascript - 可以在收听时添加到 Node.js Express 的路由吗?

javascript - 如何使用 Jquery AJAX 调用 MVC Action 然后在 MVC 中提交表单?