gpt4 book ai didi

javascript - 如何将 $q 提供程序插入到未包装到 Angular 模块中的类中?

转载 作者:行者123 更新时间:2023-12-01 01:49:49 25 4
gpt4 key购买 nike

我有一个 es6 模块

我的模块

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 block 的示例)时,会自动为您应用注入(inject)器,但也可以显式调用它。类似以下内容可能适合您:

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

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

export myObject = new MyClass();

有关注入(inject)器的文档,请参阅此页面:https://docs.angularjs.org/api/auto/service/$injector

关于javascript - 如何将 $q 提供程序插入到未包装到 Angular 模块中的类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51638006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com