2016-03-20 17 views
0

だから私は、次のものが含まれているdataService.jを作成して作ることができるような単純なように、ロードされていませんカスタムサービスは、私はそれが

angular.js:13236 ReferenceError: gameData is not defined 
at new <anonymous> (dataService.js:18) 
at Object.instantiate (angular.js:4619) 
at Object.<anonymous> (angular.js:4459) 
at Object.invoke (angular.js:4604) 
at Object.$get (angular.js:4443) 
at Object.invoke (angular.js:4604) 
at angular.js:4403 
at d (angular.js:4550) 
at e (angular.js:4574) 
at Object.invoke (angular.js:4596) 

私はここで多くの例を見てきました。これはうまくいくはずです...任意の提案なぜこれが読み込まれていないのか?

あなたは(factory()またはprovider()とは対照的に)angular.module().service()を使用してサービスを登録した場合はすべてのヘルプは、あなたがそれを手機能がnew EDになることができるものであることを、角期待し、

Z

+0

あなたは間違ったオブジェクトを返しています。あなたは '_gameData'を返すことができますし、より良い' this.gameData'を返すこともできます(同じ参照を共有しています) –

答えて

1

をいただければ幸いです。だから関数はちょうどthis(必要に応じて)に必要なプロパティを追加する必要があります。

最後の行return gameData;を削除してもう一度お試しください。詳細については

、この記事を参照してください:http://blog.thoughtram.io/angular/2015/07/07/service-vs-factory-once-and-for-all.html

+0

変更がうまくいっています。だから私が物事を正しく読んでいるならば、もし私が工場を使っていたら、gameData変数を返すだけで唯一必要なのでしょうか? – Zanderfax

-1

エラーが示すように、あなたはgameDataServiceからreturn文で問題を抱えています。 return gameDataの代わりにreturn this.gameDataを試してください。

さらに、console.log(gData)ではなくconsole.log($scope.gData)のように、ClientControllerスコープにあるgData変数をconsole.logにすることもできます。