【问题标题】:angularjs $q.defer() Object doesn't support propert or method 'defer'angularjs $q.defer() 对象不支持属性或方法'defer'
【发布时间】:2017-05-11 00:53:22
【问题描述】:

您好,我遇到了一个问题,我试图将 $q 注入控制器并使用 defer(),但它会引发错误“TypeError: Object does not support property or method 'defer'”

我知道将 $q 注入控制器将适用于下面的编码风格,但想避免使用它。

var app = angular.module('myApp',[]);
app.controller('myApp, function($q){});

所以...我遵循将控制器定义为的编码风格 http://bguiz.github.io/js-standards/angularjs/controllers/

有什么想法吗?我的代码如下所示。

(function(angular){
  'use strict'
  angular
        .module('myApp',[])
        .controller('myCtrl',myCtrl)
  
  myCtrl.$inject = ['$scope','$q'];
  
  function myCtrl($q){
    var vm = this;
    vm.items = $q.defer();
    
  }
}(window.angular));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp">
  <div ng-controller="myCtrl">
     rest of code goes here ...
  </div>
</div>

【问题讨论】:

    标签: angularjs angular-promise deferred


    【解决方案1】:

    您在myCtrl 中缺少$scope 参数。您同时注入了两者,但尝试使用$scope 代替$q

    【讨论】:

    • 我不敢相信我错过了。谢谢菲克斯!
    • 这发生在我们所有人身上:)
    • 感谢@tanmay,在移动设备上。
    猜你喜欢
    • 2019-07-05
    • 2015-04-14
    • 2020-09-03
    • 2015-04-09
    • 2014-01-12
    • 2016-08-20
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多