Есть ли способ сделать кнопку копирования с функцией копирования, которая будет копировать все содержимое модального, и вы можете вставить его в блокнотеAngularJS скопировать в буфер обмена
ответ
Вы можете использовать модуль, который я сделал, ngClipboard. Вот ссылка https://github.com/nico-val/ngClipboard
Вы можете использовать либо директиву ng-copyable
, либо фабрику ngClipboard.toClipboard()
.
Спасибо за пример, но он не работает в Safari. –
Спасибо, человек, простой и изящный :) – Sampath
мне нужен эта функциональность в моем Controller
, как текст, который будет скопирован динамичен, вот моя простая функция, основанная на коде в ngClipboard модулы:
function share() {
var text_to_share = "hello world";
// create temp element
var copyElement = document.createElement("span");
copyElement.appendChild(document.createTextNode(text_to_share));
copyElement.id = 'tempCopyToClipboard';
angular.element(document.body.append(copyElement));
// select the text
var range = document.createRange();
range.selectNode(copyElement);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
// copy & cleanup
document.execCommand('copy');
window.getSelection().removeAllRanges();
copyElement.remove();
}
P.S.
Вы можете добавить комментарий, рассказывающий мне, как плохо это manipulate DOM from a Controller.
Такой повстанческий девственник вы;) –
, если вы не хотите, чтобы добавить новую библиотеку в проект, и вы создаете ее вашей собственной личностью, вот простое, простое решение:
Примечание: Я создал его с функциональностью обещание (которое удивительным)
здесь CopyToClipboard.js module file
angular.module('CopyToClipboard', [])
.controller('CopyToClipboardController', function() {
})
.provider('$copyToClipboard', [function() {
this.$get = ['$q', '$window', function ($q, $window) {
var body = angular.element($window.document.body);
var textarea = angular.element('<textarea/>');
textarea.css({
position: 'fixed',
opacity: '0'
});
return {
copy: function (stringToCopy) {
var deferred = $q.defer();
deferred.notify("copying the text to clipboard");
textarea.val(stringToCopy);
body.append(textarea);
textarea[0].select();
try {
var successful = $window.document.execCommand('copy');
if (!successful) throw successful;
deferred.resolve(successful);
} catch (err) {
deferred.reject(err);
//window.prompt("Copy to clipboard: Ctrl+C, Enter", toCopy);
} finally {
textarea.remove();
}
return deferred.promise;
}
};
}];
}]);
, что именно, благодаря https://gist.github.com/JustMaier/6ef7788709d675bd8230
теперь давайте использовать его
angular.module('somthing')
.controller('somthingController', function ($scope, $copyToClipboard) {
// you are free to do what you want
$scope.copyHrefToClipboard = function() {
$copyToClipboard.copy(/*string to be coppied*/$scope.shareLinkInfo.url).then(function() {
//show some notification
});
};
}
и, наконец, HTML
<i class="fa fa-clipboard" data-ng-click="copyHrefToClipboard($event)"></i>
надеюсь, что это экономит ваше время
- 1. Скопировать в буфер обмена
- 2. Скопировать в буфер обмена
- 3. Скопировать информацию в буфер обмена
- 4. Скопировать изображение в буфер обмена
- 5. Скопировать изображение в буфер обмена
- 6. Скопировать свойство в буфер обмена
- 7. Скопировать в буфер обмена в расширении Safari?
- 8. Скопировать изображение в буфер обмена в Python3
- 9. Скопировать в буфер обмена в листы Google
- 10. Скопировать в буфер обмена в Inno Setup
- 11. Скопировать файлы в буфер обмена в C#
- 12. Как скопировать в буфер обмена в F #?
- 13. Скопировать файл в буфер обмена в Delphi
- 14. Скопировать в буфер обмена в Chrome Extension
- 15. Скопировать в буфер обмена в javascript?
- 16. Скопировать в буфер обмена на C++?
- 17. Веб: Скопировать в буфер обмена (custom ..)
- 18. Greasemonkey \ JavaScript Скопировать в буфер обмена
- 19. Скопировать всплывающую подсказку в буфер обмена
- 20. elm: скопировать текст в буфер обмена
- 21. Как скопировать textField в буфер обмена OSX?
- 22. Как скопировать в буфер обмена текущий путь?
- 23. Как скопировать форматированный текст в буфер обмена
- 24. Скопировать текст выбранной области в буфер обмена
- 25. Как скопировать текст кнопки в буфер обмена?
- 26. Как скопировать содержимое ячейки в буфер обмена
- 27. Как скопировать окно в буфер обмена?
- 28. скопировать элемент как HTML в буфер обмена
- 29. Скопировать WordML в буфер обмена из выбора
- 30. Скопировать содержимое DataGridView в буфер обмена
возможный дубликат [как получить данные из буфера обмена в угловом JS] (http://stackoverflow.com/questions/ 21028578/how-to-get-clipboard-data-in-angle-js) – cbass