繁体   English   中英

在指令Angularjs中传递元素ID

[英]Pass element id in a directive Angularjs

这是我将相同文本复制到剪贴板的指令

mainApp.directive('ngCopyable', function() {
    return {
        restrict: 'A',
        link:link
    };
    function link(scope, element, attrs) {
        element.bind('click',function(){
            var text = document.getElementById('id-my-div');
            var range = document.createRange();
            range.selectNode(text);
            window.getSelection().removeAllRanges();
            window.getSelection().addRange(range);
            var successful = document.execCommand('copy');

            var msg = successful ? 'successful' : 'unsuccessful';
            //console.log('Copying text command was ' + msg);
            window.getSelection().removeAllRanges();
        });
    }

});

它正在工作。 我在图标中使用此指令

<span ng-copyable>
  <i class="zmdi zmdi-copy"></i>
</span>

当我单击该图标时,将成功复制ID为id-my-div的div内的文本。 问题是该ID不是动态的。 这样,将仅复制该元素。 可能更改指令传递我要复制的元素的ID吗?

您可以在指令中传递任何属性

<span ng-copyable>
  <i class="zmdi zmdi-copy" elementId="myId"></i>
</span>

在您的指令中,您可以通过

var id = element.attrs('elementId')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM