我有一个Angular2应用程序.为了Document在测试中模拟 对象,我想将它注入服务,如:
import { Document } from '??'
@Injectable()
export class MyService {
constructor(document: Document) {}
}
Run Code Online (Sandbox Code Playgroud)
Titleangular 的服务使用内部getDOM()方法:
有没有简单的方法将文档注入服务?另外,我应该如何在providers数组中引用它?
有没有办法在Angular2 Typescript框架中复制剪贴板(多浏览器)中的文本?
我只找到使用Javascript的来源,例如
document.execCommand('copy')
Run Code Online (Sandbox Code Playgroud) 页面有一个按钮,可以使用代码将文本复制到剪贴板:
export class ClipboardService {
static copyToClipboard(toCopy: string) : void {
document.addEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
});
document.execCommand('copy');
}
}
Run Code Online (Sandbox Code Playgroud)
但是在使用后,此代码Ctrl+C不起作用。我需要removeEventListener类似的东西:
export class ClipboardService {
static copyToClipboard(toCopy: string) : void {
document.addEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', toCopy);
e.preventDefault();
});
document.execCommand('copy');
document.removeEventListener('copy', (e : ClipboardEvent) => {
e.clipboardData.??? // I stuck in this place.
});
}
}
Run Code Online (Sandbox Code Playgroud)
复制特定字段中的文本时如何返回剪贴板的标准行为?