У меня есть служба, которая требует внешней библиотеки, например moment
. Я импортирую эту библиотеку как модуль ES6. Но поскольку служба AngularJS определена с использованием метода замыкания, библиотека недоступна при вызове funcA()
.
service.js
import moment from 'moment';
export function DataService() {
return {
funcA: function() {
return moment().startOf('day').fromNow();
}
};
}
controller.js
MyCtrl.$inject = ['$scope', '$state', 'DataService', ...];
export function MyCtrl($scope, $state, DataService, ...) {
function setInitialDate () {
ctrl.someDate = DataService.funcA();
}
}
app.js
import {DataService} from './service.js';
import {MyCtrl} from './controller.js';
var services = angular.module('services', []);
services.factory('DataService', DataService);
angular.module('mycontrollers').controller('MyCtrl', MyCtrl);
Я могу импортировать внешнюю библиотеку в объект окна и получить к ней доступ внутри службы, используя $window
. Существует ли другой способ получить доступ к библиотеке, которая была импортирована как модуль ES6, из службы AngularJS?