繁体   English   中英

无法在Angular JS中注册服务

[英]unable to register service in angular js

我在加载页面上收到以下错误:scripts.js:10

未捕获的ReferenceError:未定义SimpleAppService

我的HTML页面

<!DOCTYPE html> <html> <head>   <script src="angular.js"></script>  
<script src="scripts.js"></script>   <script
src="MathFactory.js"></script>   <script
src="SimpleAppService.js"></script>  </head>

<body ng-app="mainModule">   <div ng-controller="simpleController">
    <strong>First name:</strong> {{person.firstName}}<br />
    <strong>Last name:</strong> {{person.lastName}}<br />
    <strong>Full name:</strong> {{getFullName()}}<br />
    <br />
    <label>Set the first name: <input type="text" ng-model="person.firstName"/></label><br />
    <label>Set the last name: <input type="text" ng-model="person.lastName"/></label>   </div> </body> </html>

用于角度脚本的scripts.js:

angular.module("mainModule", []).value("person", {
    firstName:
    "firstName",
    lastName: "lastName",
    getFullName: function () {
        return firstName + " " + lastName;
    }
})
.service("SimpleAppService", SimpleAppService)
.controller("simpleController", ["SimpleAppService", function
        ($scope, person) {
            $scope.person = person;
            $scope.getFullName =
            function () {
                return person.firstName + person.lastName;
            }
        }
    ]);

我的服务

var mainModule = angular.module("mainModule", []);
mainModule.service("SimpleAppService", function (MathFactory) {
    this.square = function (a) {
        return MathFactory.multiply(a, a);
    }
    this.add = function (a, b) {
        return MathFactory.add(a, b);
    }
});

我的工厂:

var mainModule = angular.module("mainModule", []);

mainModule.factory('MathFactory', function () {
    var factory = {};
    factory.multiply = function (a, b) {
        return a * b;
    }
    factory.add =
    function (a, b) {
        return a + b;
    }
    factory.sub = function (a, b) {
        return a - b;
    }
    return factory;
});

您正在覆盖每个服务/工厂文件中的模块mainModule

script.js中仅定义一次模块

var mainModule = angular.module("mainModule", []); 

然后把它拿来注册服务,并用它在其他文件MathFactory.jsSimpleAppService.js以下

var mainModule = angular.module("mainModule");

mainModule.service('service' ...);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM