我在控制台中收到此错误$q is not defined
。当我进行一些研究时,我发现了一些.q library has been deprecated
类似
http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs
如果是这样,那么整个 Promise 的概念也被弃用了,
我在控制台中收到此错误$q is not defined
。当我进行一些研究时,我发现了一些.q library has been deprecated
类似
http://www.breezejs.com/documentation/breeze-labs/breezeangularqjs
如果是这样,那么整个 Promise 的概念也被弃用了,
Promise 不会被弃用。事实上,它们最近获得了相当大的动力,并包含在 JavaScript 的下一个版本中。
让我们看看他们怎么说:
这个breeze.angular.q 库已被弃用。它被 Breeze Angular 服务所取代,后者更干净地为 Angular 开发配置了微风。
Breeze Angular Service 告诉 Breeze 使用 Angular 的
$q
Promise 和使用 Angular 的$http
ajax 调用。
他们说的是,brief 使用 Angular 自己的 Promise,而不是它自己的使用 Q Promise,Q Promise 比Angular 使用breeze.angular.q
的 Promise 更有能力但也更重。$q
这只是一个 API 更改。
在 Angular 代码中,您可以$q
使用依赖注入来获取 - 例如使用简单的语法:
myApp.controller("MyCtrl",function($q){
//$q is available here
});
或者,如果您想独立使用它,您可以使用服务位置并$q
直接从注入器获取,但这种情况很少见。(如果你想要一个例子 - 让我知道,我宁愿不包含通常表明不良做法的代码)。
# in your console, try following code
$injector = angular.injector(['ng']);
q = $injector.get('$q');
deferred = q.defer();
# then do whatever you want