저는 각도 프로젝트에서 작업하고 있습니다. 컨트롤러에는 &을 생성하는 버튼이있어 클립 보드에 소스 코드 (YouTube와 유사)를 복사합니다. 그러나 항목 유형에 따라 포함 코드는 ajax 호출에 의해서만 생성/반환 될 수 있습니다. 이 코드를 살펴 유무 :클립 보드에 데이터를 복사 할 수 없습니다. 바닐라 js/각도
function copyEmbed(e) {
var embedCode = '';
if (type === "typeA"){
api.items.compile.get({'id': item.selected.id},
function (response) {
embedCode = response.html; //<-- takes time to populate obviously
copyToClipboard();
});
} else {
embedCode = generateEmbedCodeTemplate(); //no ajax here. populates immediately
copyToClipboard();
}
function copyToClipboard() {
clipboard.copyText(); // all seems good but copying will fail as this function is not invoked with a click handler!
}
}
문제 아약스 호출, 코드의 copyEmbed 기능 범위에있을 수없는 결과 소스 코드를 복사 할 수 있기 때문에이 아약스 호출이이 없습니다 수단이다 복사하기 전에 데이터를 가져올 시간. 모든 것을 동기식으로 만들 수 있었다면 데이터를 가져온 다음 copyEmbed 함수의 범위 내에서 copy 명령을 호출 할 수 있으므로 copyEmbed 함수가 click 이벤트에 바인딩되므로 실패하지는 않습니다. 그러나이 예제에서는 ajax 호출을 올바르게 처리하지만 copyToClipboard 함수는 클릭 핸들러와 함께 호출되지 않으므로 복사 명령이 실패합니다. embedCode 내용을 확인하기위한 해킹 setIntervals의 결과가없는 어떤 아이디어라도 있습니까?