我正在编写一个浏览器应用程序,我有一个创建对象并初始化它的文件.该应用程序是用AngularJS编写的,但有问题的文件是Angular生态系统之外的纯
Javascript.
我想在该文件中使用promises,但由于Angular包含an implementation的an implementation,我宁愿使用它而不是引入另一个库.
我也在使用RequireJS.
那么,有没有办法在非Angular文件中使用$q?
解决方法
您可以使用
angular.injector()方法执行此操作,该方法返回
$injector函数,该函数可以通过其invoke()方法注入您需要的依赖项(例如$http,$q).
像这样的东西:
angular.injector(['ng']).invoke(['$q',function($q) { $q.when('hello world').then(function(message) { window.alert(message); }); }]);
请注意,传递给angular.injector()的数组是一个模块列表,我包含了ng模块,因为这是AngularJS核心依赖项所在的位置.