AngularJS:错误:$q 未定义

Posted

技术标签:

【中文标题】AngularJS:错误:$q 未定义【英文标题】:AngularJS: Error: $q is not defined 【发布时间】:2017-05-03 05:21:36 【问题描述】:

我想在我的 angularjs 控制器中做出承诺。我从Angularjs Doc 中获取示例并将其粘贴到我的控制器中。当我尝试运行代码时,控制台会打印:

Error: $q is not defined

为什么会出现这个错误,我该如何解决?

我试图用谷歌搜索这个问题,但大多数问题都围绕着比我更具体的问题。

(german) guide 告诉我,promise 已经在 Angular js 中实现了,不需要添加任何东西。

编辑:

这是我的控制器:

app.controller("ArgumentationController", [
    '$scope', '$resource',
    function($scope, $resource) 

编辑2: 一位评论员建议注入 $q。我这样做了:

app.controller("ArgumentationController", [
    '$scope', '$resource', '$q',
    function($scope, $resource, $q) 

现在,错误不会发生。

【问题讨论】:

你在控制器中注入了 $q 吗? 【参考方案1】:

根据您过去的代码,您的代码中不需要$resource。而是在其中注入$q。 当您使用$q 创建一个虚拟承诺时,请进行以下更改。

 app.controller("ArgumentationController", [
        '$scope', '$q',
        function($scope, $q) 

【讨论】:

以上是关于AngularJS:错误:$q 未定义的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:无法读取 AngularJS 和 D3 中未定义的属性“弧”

Angularjs:错误:[ng:areq] 参数“HomeController”不是函数,未定义

尝试在 SharePoint 环境中使用 AngularJS DateRangePicker 时出现未定义错误

未捕获(承诺):TypeError:无法读取未定义的属性“创建”(离子 3.9,Angularjs 5.0.3)

“未捕获的类型错误:在 angularJS/NodeJS 中使用条带支付方法 Stripe.charges.create() 时无法读取未定义的属性‘创建’”

AngularJS指令$ scope未定义