Javascript 如何将$q提供程序插入到未包装到角度模块中的类中?

Javascript 如何将$q提供程序插入到未包装到角度模块中的类中?,javascript,angularjs,ecmascript-6,angularjs-scope,Javascript,Angularjs,Ecmascript 6,Angularjs Scope,我有一个es6模块 MyModule let _q$;// I would like the $q provider of angularjs to be a private property of that module export default class MyClass{ constructor($q){ _$q = $q } } 实际上,实例化MyClass的唯一方法(我发现)是使用angularjs函数: import MyClass from "..

我有一个es6模块

MyModule

let _q$;// I would like the $q provider of angularjs to be a private property of that module

export default class MyClass{
   constructor($q){
      _$q = $q
    }
}
实际上,实例化MyClass的唯一方法(我发现)是使用angularjs函数:

import MyClass from "../model/MyClass";
angular.module('myModule').run(function($q){
   var myObject = new MyClass($q);
})
问题是我无法访问当前文件之外的myObject

我想做的是在MyModule中实例化MyClass,然后将其导出:

class MyClass{
   constructor($q){
      _$q = $q
    }
}

export myObject = new MyClass($q);
这里的问题是,我不知道如何访问$q


我有点卡住了:(

在编写标准angularJs代码(例如,服务、组件或带有.run块的示例)时,注入器会自动为您应用,但也可以显式地调用它。类似以下内容可能适用于您:

import angular from 'angular';
const $injector = angular.injector();
const $q = $injector.get('$q');

class MyClass {
  someMethod() {
    return $q.resolve('something');
  }
};

export myObject = new MyClass();

有关注入器的文档,请参阅本页:

在编写标准angularJs代码(例如,服务、组件或带有.run块的示例)时,注入器将自动应用于您,但也可以显式调用它。类似以下内容可能适用于您:

import angular from 'angular';
const $injector = angular.injector();
const $q = $injector.get('$q');

class MyClass {
  someMethod() {
    return $q.resolve('something');
  }
};

export myObject = new MyClass();
有关喷油器的文档,请参阅本页:

完整答案是:

import angular from 'angular';
const $injector = angular.injector(['ng']);//<- ['ng'] is necessary to tell angular in which module the provider resides.
const $q = $injector.get('$q');

class MyClass {
  someMethod() {
    return $q.resolve('something');
  }
};

export let myObject = new MyClass();
从“角度”导入角度;
const$injector=angular.injector(['ng']);//完整答案是:

import angular from 'angular';
const $injector = angular.injector(['ng']);//<- ['ng'] is necessary to tell angular in which module the provider resides.
const $q = $injector.get('$q');

class MyClass {
  someMethod() {
    return $q.resolve('something');
  }
};

export let myObject = new MyClass();
从“角度”导入角度;

const$injector=angular.injector(['ng']);//我收到此错误:未捕获错误:[$injector:unpr]未知提供程序:$qProvider我收到此错误:未捕获错误:[$injector:unpr]未知提供程序:$qProvider