【问题标题】:How do I add an onPaste listener to a summernote in AngularJS?如何在 AngularJS 中将 onPaste 侦听器添加到 Summernote?
【发布时间】:2016-11-01 09:45:07
【问题描述】:

summernote 被动态添加到我的网站。这意味着用户点击一个按钮后,会弹出一个带有summernote div的窗口。

想要使用 AngularJS 为 div 添加一个 onPaste 监听器。

不想想用jQuery这样添加监听器:

$(document).ready(function (){
    $('.summernote').summernote({
        onPaste: function(e){
            setTimeout(function (e) {
                alert('pasted');
            }, 20);
        }
    });
});

【问题讨论】:

    标签: jquery angularjs summernote


    【解决方案1】:

    显然,有一个指令:here

    只需像这样在您的模块中注入依赖项:angular.module('myApp', ['summernote']);,您可以将其用作element<summernote></summernote>attribute<div summernote></div>

    Here 是指向事件侦听器的链接,包括粘贴。

    编辑

    为了连接粘贴事件处理程序,您需要将 on-paste=paste() 作为属性添加到指令中,并将相应的“粘贴”函数添加到控制器内的 $scope 中。以下是文档中列出的完整示例:

    function DemoController($scope) {
      $scope.init = function() { console.log('Summernote is launched'); }
      $scope.enter = function() { console.log('Enter/Return key pressed'); }
      $scope.focus = function(e) { console.log('Editable area is focused'); }
      $scope.blur = function(e) { console.log('Editable area loses focus'); }
      $scope.paste = function(e) { console.log('Called event paste'); }
      $scope.change = function(contents) {
        console.log('contents are changed:', contents, $scope.editable);
      };
      $scope.keyup = function(e) { console.log('Key is released:', e.keyCode); }
      $scope.keydown = function(e) { console.log('Key is pressed:', e.keyCode); }
      $scope.imageUpload = function(files) {
        console.log('image upload:', files);
        console.log('image upload\'s editable:', $scope.editable);
      }
    }
    

    在你的标记中:

      <summernote on-init="init()" on-enter="enter()" on-focus="focus(evt)"
            on-blur="blur(evt)" on-paste="paste()" on-keyup="keyup(evt)"
            on-keydown="keydown(evt)" on-change="change(contents)"
            on-image-upload="imageUpload(files)" editable="editable" 
            editor="editor">
        </summernote>
    

    【讨论】:

    • 但我不会为每个summernote div 设置on-paste。我如何为每个summenote div 设置一个on-paste 侦听器?
    • 他们说我们可以使用function DemoController($scope) {$scope.paste = function(e) { console.log('Called event paste'); }}添加一个监听器,并在on-paste中调用它。但是我应该在哪里添加这个功能呢?
    • 所以,在AngularJS中,应该是angular.module('xxxx',['summernote']).controller('PageController', function($scope){$scope.paste=function(e){/* Things to add */})??
    • 是的。不要忘记将指令添加到您的标记中。显然,您还需要安装 Summernote 指令(我链接到的网站上有说明)。
    猜你喜欢
    • 2016-08-21
    • 2022-08-03
    • 2013-02-17
    • 2011-09-28
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多