从我的AngularJS注入器获取延迟/承诺时获取"未知提供者:$ qProvider < - $ q"

cor*_*ath 3 promise angularjs

我正在尝试创建一个简单的示例,我从AngularJS的服务解决方案中获取promise/defer对象:

var $q;

function init() {

    var $injector = window.angular.injector();
    console.log($injector);
    $injector.invoke(["$q", function (_$q) {
        console.log($q);
        $q = _$q;
    }]);

}

init();
Run Code Online (Sandbox Code Playgroud)

但它导致:

错误:未知提供者:$ qProvider < - $ q [在此错误时出现错误]
抛出错误("未知提供者:"+ path.join('< - '));

我能错过什么?

joa*_*eng 12

您必须添加提供程序所在的模块,如下所示:

var $injector = window.angular.injector(['ng']);
Run Code Online (Sandbox Code Playgroud)

然后它会工作!

编辑:关于'ng'模块,文档明确指出必须明确添加.从角度注入器docs:

modules – {Array.<string|Function>} – A list of module functions or their aliases.
See angular.module. The ng module must be explicitly added.
Run Code Online (Sandbox Code Playgroud)