无法使用服务AngularJS - “无法读取未定义的属性'原型'”

Can not use services AngularJS - 'Cannot read property 'prototype' of undefined'

本文关键字:属性 原型 读取 服务 AngularJS 未定义      更新时间:2023-09-26

我是Angularjs的新手,在遇到这个问题之前一切都很顺利。
当我尝试在控制器中使用服务时,加载页面后立即收到此错误:

TypeError: Cannot read property 'prototype' of undefined
at Object.instantiate (https://code.angularjs.org/1.3.5/angular.js:4145:82)
at Object.<anonymous> (https://code.angularjs.org/1.3.5/angular.js:4007:24)
>>at Object.invoke (https://code.angularjs.org/1.3.5/angular.js:4138:17)
>>at Object.enforcedReturnValue [as $get] (https://code.angularjs.org/1.3.5/angular.js:3991:37)
>>at Object.invoke (https://code.angularjs.org/1.3.5/angular.js:4138:17)
>>at https://code.angularjs.org/1.3.5/angular.js:3956:37
>>at getService (https://code.angularjs.org/1.3.5/angular.js:4097:39)
>>at Object.invoke (https://code.angularjs.org/1.3.5/angular.js:4129:13)
>>at extend.instance (https://code.angularjs.org/1.3.5/angular.js:8376:21)
>>at https://code.angularjs.org/1.3.5/angular.js:7624:13

这是我的代码:

var app = angular.module('myApp', []);
app.service('Service'), function () {
    var category = { name: 'Test' };
    return {
        set: function (newObj) {
            category.name = newObj;
        },
        get: function () {
            return category;
        }
    };
};
app.controller('MainController', function (Service, $scope) {
    $scope.save = function() {
        Service.set($scope.search);
    };
    $scope.message = Service.get();
});

请帮忙

您没有正确声明您的服务。服务声明中有一个附加的结束)

线:

app.service('Service'), function () {

应该是:

app.service('Service', function () {

如果您使用的是TypeScript则必须确保class definition高于angular.module定义。

错:

angular.module('app').service('Service', Service);
class Service {
}

正确:

class Service {
}
angular.module('app').service('Service', Service);