バージョン 0.9.19 で作業していると思われます。まず、バージョン 1.0rc4 に移行することをお勧めします。バージョン 1.0 はまもなく稼働し、安定していますが、バージョン 0.9 から多くの重大な変更が加えられています。詳細については、 Angular のドキュメントを参照してください。
v1.0 では、コントローラー、サービス、ディレクティブなど、すべてをモジュールにラップします。次のようにモジュールを作成します。
var module = angular.module('ModuleName', ['ngResource']);
バージョン 1.0 では、リソース サービスは独自のクラスに分解されるため、依存関係として与える必要があります。また、アプリにリソース jsファイルを含める必要があります。
サービスを作成するには、モジュール API を使用するだけです。この場合:
module.factory('Player', ['$resource', function($resource) {
return $resource('/player/get');}]);
ここで、$resource への依存関係が angular によって注入されることに注意してください。
個人的には、サービス内のスコープを台無しにしたくないので、コントローラー内に次のようにします。
module.controller('MyController', ['$scope', 'Player', function($scope, Player) {
$scope.select = function(email) {
console.log("selecting");
Player.get({
email: email
}, function(player) {
$scope.selectedPlayer = player;
});
};
}]);
v1.0 では、スコープもコントローラーに挿入されるため、self を使用しないことに注意してください。また、selectedPlayer には player からのフィールドのみが含まれると勝手に仮定したので、selectedPlayer の上に直接 player を書きました。フィールドごとに手動で行うか、 を使用angular.extend($scope.selectedPlayer, player);
して 2 つのオブジェクトをマージすることもできます。
ここにフィドルがあります:http://jsfiddle.net/DukvU/