Sospetto che stiate lavorando fuori dalla versione 0.9.19. Prima ti suggerisco di passare alla versione 1.0rc4. La versione 1.0 è prossima alla pubblicazione ed è stabile ma presenta molte modifiche alla versione 0.9. Puoi vedere lo Angular documentation per ulteriori informazioni.
Nella v1.0 si avvolge tutto in un modulo: controller, servizi, direttive e così via. Creare un modulo in questo modo:
var module = angular.module('ModuleName', ['ngResource']);
Nella versione 1.0 del servizio risorsa è scomposto fuori nella propria classe, quindi bisogna dare come una dipendenza. Dovrai anche includere il file resource js nella tua app.
Ora per creare un servizio è sufficiente utilizzare l'API del modulo. In questo caso:
module.factory('Player', ['$resource', function($resource) {
return $resource('/player/get');}]);
Si noti qui che la dipendenza da $ risorsa viene iniettata da angolare.
Personalmente non mi piace pasticciare con la portata dentro il mio servizio in modo avrei la seguente dentro il mio controller:
module.controller('MyController', ['$scope', 'Player', function($scope, Player) {
$scope.select = function(email) {
console.log("selecting");
Player.get({
email: email
}, function(player) {
$scope.selectedPlayer = player;
});
};
}]);
Si noti che nella versione 1.0 il campo di applicazione è anche iniettato il controller in modo non usare più se stessi. Inoltre ho preso la libertà di presumere che il SelectedPlayer avrebbe contenuto solo i campi del giocatore, quindi ho appena scritto il giocatore direttamente sopra a selectedPlayer. Puoi anche farlo manualmente field by field o usare angular.extend($scope.selectedPlayer, player);
per unire i due oggetti.
Ecco un violino: http://jsfiddle.net/DukvU/