2015-06-03 3 views
3

Я хотел бы сделать сторонний объект для инъекции window, чтобы я мог тестировать функциональность независимо от сторонней службы. Компонент, который я пытаюсь создать, представляет собой простую оболочку вокруг встроенных комментариев Disqus. Завод Я хотел бы использовать это так же просто, какКак вы вводите заводскую функцию с контейнером DI Aurelia?

() => window.DISQUS 

Кто-нибудь был в состоянии сделать это или знать, если это возможно?

ответ

4

registerInstance Использование с ключом строки, как это:

container.registerInstance('disqus', window.DISQUS); 

Тогда можно впрыскивать Disqus экземпляр в вашей модели зрения, как это:

import {inject} from 'aurelia-framework'; 

@inject('disqus') 
export class Foo { 
    constructor(disqus) { 
    this.disqus = disqus; 
    } 
    ... 
} 
+1

Где вы положили, что 'container.registerInstance' код? – Dustin

+1

@ Dustin посмотреть [здесь] (http://stackoverflow.com/a/35141543/725866) и [здесь] (https://github.com/aurelia/dependency-injection/issues/73) –