3

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();

しかし、結果は次のとおりです。

エラー: 不明なプロバイダー: $qProvider <- $q [このエラーで中断]
throw Error("不明なプロバイダー: " + path.join(' <- '));

私は何を逃した可能性がありますか?

4

2 に答える 2

13

次のように、プロバイダーが存在するモジュールを追加する必要があります。

var $injector = window.angular.injector(['ng']);

それならうまくいく!

編集:「ng」モジュールに関しては、明示的に追加する必要があるとドキュメントに明確に記載されています。angularインジェクターのドキュメントから

modules – {Array.<string|Function>} – A list of module functions or their aliases.
See angular.module. The ng module must be explicitly added.
于 2013-05-03T13:15:54.327 に答える
0

angular.js モジュールのライフサイクルの外にいる場合は、https://github.com/kriskowal/qを使用してください。モジュール ($rootScope が必要)。

于 2013-05-03T14:25:14.283 に答える