angularjs $ q.defer()对象不支持属性或方法'defer'

时间:2017-05-11 00:53:22

标签: angularjs angular-promise deferred

您好我正面临一个问题,我正在尝试向控制器注入$ q并使用defer()但它会抛出错误“TypeError:Object不支持属性或方法'延迟'”

我知道在控制器中注入$ 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>

1 个答案:

答案 0 :(得分:1)

您错过了$scope中的myCtrl参数。您正在注入两者,但尝试使用$scope代替$q