javascript - 我可以在 Angular 组件之外使用 AngularJS 的 $q 吗?

标签 javascript angularjs requirejs angular-promise

我正在编写一个浏览器应用程序,我有一个创建对象并对其进行初始化的文件。该应用程序是用 AngularJS 编写的,但有问题的文件是普通的 Javascript,在 Angular 生态系统之外。

我想在该文件中使用 promises,但由于 Angular 包含一个 an implementationQ ,我宁愿只使用它,也不愿引入另一个库。

我也在使用 RequireJS。

那么,有没有办法在非 Angular 文件中使用 $q 呢?

最佳答案

您可以使用 angular.injector() 来做到这一点返回 $injector 的方法函数可以通过其 invoke() 方法注入(inject)您需要的依赖项(例如 $http$q)。

DEMO

像这样:

angular.injector(['ng']).invoke(['$q', function($q) {

  $q.when('hello world').then(function(message) {
    window.alert(message);
  });

}]);

请注意,传递给 angular.injector() 的数组是一个模块列表,我包含了 ng 模块,因为这是 AngularJS 核心依赖项所在的位置。

关于javascript - 我可以在 Angular 组件之外使用 AngularJS 的 $q 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858244/

相关文章:

javascript - jQuery 自动完成问题 - 没有正确处理数组

javascript - $scope.$on ('$destroy' , ...) 的事件处理程序是否被销毁?

javascript - 如何等待在 Protractor 端到端测试中处理事件?

javascript - 变量在范围内不存在(使用 requirejs/backbone)

javascript - 使用没有 View 模型 .JS 文件的 knockout 组件?

Requirejs 正在寻找错误的路径

JavaScript:使用 jasmine 进行 toLocaleString() 测试

javascript - 如何迭代数组,提供对元素、索引和数组本身的访问,而不使用内置的 Javascript 函数

Javascript 函数 if 语句

javascript - 元素未在 Angular 中渲染