[AngularJS] Unknown Provider

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • patricks8
  • Registratie: September 2010
  • Laatst online: 13:38
Hallo mede Tweakers,

Ik wil voor een eigen project een website bouwen met behulp van AngularJS versie 1.4.3. Met daarachter een PHP Lumen backend.

Het opzetten van het project levert geen problemen en alles werkt naar behoren. Als ik op een vrij simpele manier data wil ophalen vanuit de backend gebruik ik hiervoor een factory. Alleen hier gaat het fout en krijg ik de volgende melding: $injector:unpr: Unknown provider: teamFactoryProvider <- teamFactory <- MainCtrl

Hier de MainCtrl:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
angular.module('bvbApp')
  .controller('MainCtrl', function ($scope, teamFactory) {
    this.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];

    $scope.players = teamFactory.get(function(result) {
      console.log(result);
    });
  });


En de teamFactory:
JavaScript:
1
2
3
4
5
6
7
angular.module('bvbApp')
  .factory('teamFactory', function ($resource) {
    return $resource(apiAddress, + '/team',
      {},
      {get: {method: 'GET'}
      });
    });


En app.js
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
angular
.module('bvbApp', [
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngTouch'
])
.config(function ($routeProvider) {
    $routeProvider
    .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
    })
    .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'AboutCtrl'
    })
    .otherwise({
        redirectTo: '/'
    });
});

Op één of andere manier gaat het dus fout bij het injecteren van de Factory in de controller. Ik krijg het niet voor elkaar om het werkend te krijgen. In andere projecten met Angular heb ik het precies hetzelfde gedaan en werkt het prima. Daarbij heb ik ook allerlei andere oplossingen geprobeerd te vinden op stackoverflow.

Hebben jullie suggesties om dit werkend te krijgen?

Edit: Het project is trouwens opgezet met yeoman.io

PSN: Skippy0810 | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Volgens mij is je MainCtrl definitie fout, je injecteert teamFactory niet. Verander het eens naar:

JavaScript:
1
2
3
4
5
angular.module('bvbApp')
  .controller('MainCtrl', ['$scope', 'teamFactory', function ($scope, teamFactory) {
 //....
}] )
 


edit: ah wacht, je gebruikt implicit annotation, wist niet dat dat kon. Gebruik je een minifier/obfuscator? Dan werkt implicit annotation niet.

Verder: heb je file waarin teamFactory gedefinieerd wordt wel geladen in je index?

[ Voor 32% gewijzigd door EddoH op 04-08-2015 16:30 ]


Acties:
  • 0 Henk 'm!

  • patricks8
  • Registratie: September 2010
  • Laatst online: 13:38
EddoH schreef op dinsdag 04 augustus 2015 @ 16:18:
Volgens mij is je MainCtrl definitie fout, je injecteert teamFactory niet. Verander het eens naar:

JavaScript:
1
2
3
4
5
angular.module('bvbApp')
  .controller('MainCtrl', ['teamFactory', function ($scope, teamFactory) {
 //....
}] )
 


edit: ah wacht, je gebruikt implicit annotation, wist niet dat dat kon. Gebruik je een minifier/obfuscator? Dan werkt implicit annotation niet.

Verder: heb je file waarin teamFactory gedefinieerd wordt wel geladen in je index?
Dat was em inderdaad. 8)7

PSN: Skippy0810 | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Die fout heb ik ook een aantal malen gemaakt :+