AngularJS reporter l'erreur: l'Argument 'fn' est pas une fonction, a obtenu de l'Objet

Je suis d'essayer de faire de mon application recueillir les données avant de modifier l'itinéraire, comme le montre beaucoup de, une vidéo de Jean-Lindquist: http://www.youtube.com/watch?v=P6KITGRQujQ&list=UUKW92i7iQFuNILqQOUOCrFw&index=4&feature=plcp

J'ai tout accroché, mais quand il est temps pour le report de l'objet à résoudre, j'obtiens l'erreur:

Error: Argument 'fn' is not a function, got Object
at assertArg (http://localhost:9000/components/angular/angular.js:1019:11)
at assertArgFn (http://localhost:9000/components/angular/angular.js:1029:3)
at annotate (http://localhost:9000/components/angular/angular.js:2350:5)
at invoke (http://localhost:9000/components/angular/angular.js:2833:21)
at Object.instantiate (http://localhost:9000/components/angular/angular.js:2874:23)
at http://localhost:9000/components/angular/angular.js:4759:24
at <error: illegal access>
at Object.Scope.$broadcast (http://localhost:9000/components/angular/angular.js:8261:28)
at http://localhost:9000/components/angular/angular.js:7417:26
at wrappedCallback (http://localhost:9000/components/angular/angular.js:6797:59) angular.js:5704

Mon code ressemble à ceci:

Route -

angular.module( 'saApp' )
.config( function ( $routeProvider, $locationProvider ) {
    $routeProvider
        .when( '/dashboard', {
            templateUrl: 'views/dashboard/dashboard.html',
            controller: Dashboard,
            resolve: Dashboard.resolve
        } 
});

contrôleur -

var Dashboard = angular.module( 'saApp' ).controller(
    function ( $scope, dataset ) {
            $scope.data = dataset;
    } );

Dashboard.resolve = {
  dataset: function ( $q, DBFactory ) {

    console.log("dataset enter")
    var deferred = $q.defer();

    DBFactory.get( {noun: "dashboard"},
        function ( data ) {
            console.log("resolving");
            deferred.resolve( data );
        } );

    console.log("promise");
    return deferred.promise;
  }
}

Sur exécuter, il exécute le résoudre, le DBFactory ressource va, vient et tout fonctionne jusqu'à la réelle différée".résoudre(de données);" qui est l'endroit où puis-je obtenir de l'erreur collé ci-dessus. Si je commente cette ligne, bien sûr, je n'ai pas de page, mais je reçois aussi pas d'erreur.

Le contenu de données, de retour de DBFactory est un objet JSON, qui est ce qui est prévu et indiqué dans tous les exemples que j'ai vu en ligne et des vidéos.

à l'aide de:

AngularJS 1.0.6

Pensées? Merci à tous pour votre aide.

Mise à JOUR:

Il semble que la façon dont j'ai été l'aide de mes itinéraires et de définir le contrôleur avec l'espace de noms:

var Dashboard = angular.module( 'saApp' ).controller()

était à blâmer pour cela. Quand j'ai tout simplement utiliser un standard de déclaration de fonction:

function DashboardCtrl($scope, dataset) {
  $scope.data = dataset;
}

il répond à la "recherche de la fonction, a obtenu de l'objet" d'erreur. La chose bizarre c'est que j'ai changé pour l'utiliser comme un objet "var DashboardCtrl = angulaire.module('saApp').contrôleur()" ou même ce que je l'ai eu à l'avant qu'à partir du générateur yeoman, et est spécifié dans la angularjs docs:

angular.module( 'saApp' )
.controller( 'DashboardCtrl', function ( $scope, dataset ) {});

avec une voie d':

.when( '/dashboard', {
            templateUrl: 'views/dashboard/dashboard.html',
            controller: 'DashboardCtrl'
        } )

ne fonctionnerait pas.

a u essayé d'utiliser angulaire 1.0.5
juste donné un aller, même erreur
Je suis bloqué sur cette trop! Je veux faire référence à une méthode de contrôleur de la route.résoudre des biens dans le 2ème argument de $routeProvider.lorsque(). Comment puis-je faire lors de l'utilisation du module de contrôleur de définition? (également à l'aide de yeoman), je suis coincé!
J'ai eu une erreur similaire lors de l'utilisation de CoffeeScript module ($provide) -> $provide.provider 'XX', -> $get: -> "something" comme CoffeeScript retourne la dernière valeur, qui a été mal interprété par l'injecteur. J'ai ajouté un null après la déclaration de résoudre.
L'erreur se produit en raison de contrôleur reçoit un objet au lieu d'une fonction. J'ai eu ce problème parce que ES6 classe ont été déclarés sans l'exportation "par défaut".

OriginalL'auteur Phil Pastorek | 2013-04-22