如何抽象出浏览器窗口对象的用法?

时间:2016-01-17 18:04:48

标签: javascript dependency-injection aurelia

在使用Aurelia框架时,如何抽象出浏览器的window对象的使用?我希望在使用setIntervaladdEventListener等功能时避免直接依赖浏览器。

Aurelia有一个名为平台抽象库的东西,理论上它应该提供我正在寻找的功能。但是,在撰写此问题时,我找不到任何关于它的文档。

1 个答案:

答案 0 :(得分:10)

几个例子:

import {DOM, PLATFORM, FEATURE} from 'aurelia-pal';

PLATFORM.addEventListener('click', e => ...);
PLATFORM.requestAnimationFrame(() => ...);

let event = DOM.createCustomEvent('foo', { bubbles: true });
DOM.dispatchEvent(event);
let element = DOM.createElement('div');

if (FEATURE.shadowDOM && FEATURE.scopedCSS && FEATURE.htmlTemplateElement) {
  ...
}

PAL- 中没有setTimeout / setInterval我觉得因为aurelia没有使用setTimeout我&#39 ; ve添加了issue来添加这些内容。