Angularjs/Ionique TypeError: Cannot read property 'puis' undefined

codes:
js:

angular.module('starter.services', ['ngResource'])
.factory('GetMainMenu',['$http','$q','$cacheFactory',function($http,$q,$cacheFactory) {
            var methodStr = 'JSONP';
            var urlStr = 'http://localhost/bd/wp-admin/admin-ajax.php';
            var ptStr = {action:'bd_get_main_menus',callback:'JSON_CALLBACK'};

            return {
                getMainMenuItems: function(){
                    var deferred = $q.defer();

                  $http.jsonp(urlStr,{params: ptStr})
                        .success(function (data, status) {

                            deferred.resolve(data);

                            return deferred.promise;
                        })
                        .error(function (data, status) {

                            deferred.reject(data);

                            return deferred.promise;

                        });
                }
            }

        }])

angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http,GetMainMenu) {
    GetMainMenu.getMainMenuItems().then(
      function(data){
        $scope.mainMenus = data;
      });
});

exécuter résultat:

TypeError: Cannot read property 'puis' undefined
à nouveau (ht.../www/js/contrôleurs.js:42:33)
à invoquer (ht.../www/lib/ionique/js/ionique.bundle.js:11994:17)...

où est le mal dans ces codes?

"Impossible de lire la propriété", puis "undefined" Votre GetMainMenu.getMainMenuItems() n'est pas définie, et elle devait être la promesse de l'objet à l'appel de la méthode then(). Le Format de votre code.
Ne pas utiliser le différés antipattern!

OriginalL'auteur johnny Lau | 2015-01-29