这是我将相同文本复制到剪贴板的指令
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?
答案 0 :(得分:0)
您可以传递指令中的任何属性
<span ng-copyable>
<i class="zmdi zmdi-copy" elementId="myId"></i>
</span>
并且在你的指令中你可以通过
var id = element.attrs('elementId')