angularjs $q.defer() Объект не поддерживает свойство или метод defer

Привет, я столкнулся с проблемой, где я пытаюсь ввести $q в контроллер и использовать defer(), но он выдает ошибку "TypeError: Object не поддерживает свойство или метод '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>

1 ответ

Решение

Вы скучаете по $scope аргумент в myCtrl, Вы вводите оба, но пытаетесь использовать $scope вместо $q,

Другие вопросы по тегам