Javascript 自定义服务没有加载,尽可能简单

Javascript 自定义服务没有加载,尽可能简单,javascript,angularjs,Javascript,Angularjs,因此,我创建了一个dataService.j,其中包含以下内容: angular.module('dataService', []) .service('gameDataService', function() { var _gameData = { loggedIn: "false", gameJoined:"false", tableFull: "false", username: "",

因此,我创建了一个dataService.j,其中包含以下内容:

angular.module('dataService', [])
    .service('gameDataService', function() {
        var _gameData = {
        loggedIn: "false",
        gameJoined:"false",
        tableFull: "false",
        username: "",
        tableInfo: {},
        atTable: "",
        numJoined: 0,
        userNames: [],
        numPlayers: _.range(2,7),
        numOfRuns: _.range(1,11)
};

this.gameData = _gameData;

return gameData;
});
然后我有我的控制器模块:

var client = angular.module('ui_client_ctrl' ,['ui_IO','dataService']);

client.controller('ClientController', function ($rootScope, $scope,gameDataService) {
$scope.gData = gameDataService.gameData;

console.log(gData);
});
我得到以下信息:

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)
angular.js:13236引用错误:未定义游戏数据
在纽约(dataService.js:18)
在Object.instantiate(angular.js:4619)
反对。(见附件js:4459)
在Object.invoke(angular.js:4604)
at Object.$get(angular.js:4443)
在Object.invoke(angular.js:4604)
在angular.js:4403
在d处(角度:4550)
在e(angular.js:4574)
在Object.invoke(angular.js:4596)
我在这里看过很多例子,这应该是有效的。。。有没有关于为什么不加载的建议

任何帮助都将不胜感激


Z

如果您使用
angular.module().service()
(与
factory()
provider()
)注册您的服务,那么angular希望您提供的函数可以是
新的
功能。因此,该函数应该只向
添加所需的属性(就像您所做的那样)

请删除最后一行
返回游戏数据并重试


有关更多详细信息,请参阅本文:

正如错误所示,gameDataService的返回语句有问题。 尝试
返回此.gameData
而不是
返回gameData


此外,您可能还希望console.log位于ClientController作用域上的gData变量,如下面的
console.log($scope.gData)
,而不是
console.log(gData)

您返回了错误的对象。您可以返回
\u gameData
,或者更好地返回
此。gameData
(它们共享相同的引用)建议的更改有效。所以,如果我读的东西是正确的,如果我使用的是工厂,那么只需要返回gameData变量就可以了?