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

Custom service is not loading, as simple as I can make it

本文关键字:尽可能 简单 加载 服务 自定义      更新时间:2023-09-26

所以我创建了一个包含以下内容的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)

我在这里看了很多例子,这应该可以工作......关于为什么没有加载的任何建议?

任何帮助将不胜感激,

Z

如果您使用 angular.module().service() 注册服务(与 factory()provider() 相反),则 angular 期望您交给它的函数是可以new编辑的。因此,该函数应该只将所需的属性添加到this(就像您所做的那样)。

请删除最后一行return gameData;,然后重试。

有关更多详细信息,请参阅此帖子:http://blog.thoughtram.io/angular/2015/07/07/service-vs-factory-once-and-for-all.html