0

有人可以告诉我下面的代码工厂部分有什么问题吗?我收到第三个控制台日志的错误消息。提前致谢。

fsp.html:95 Uncaught SyntaxError: Unexpected token (
    angular.js:36Uncaught Error: [$injector:modulerr]       http://errors.angularjs.org/1.2.23/$injector/modulerr?p0=MyModule&p1=Error%…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.23%2Fangular.min.js%3A17%3A415)
      at angular.js:36
      at angular.js:3906
      at r (angular.js:325)
      at e (angular.js:3872)
      at gc (angular.js:3812)
      at c (angular.js:1444)
      at fc (angular.js:1459)
      at Xc (angular.js:1368)
      at angular.js:21949
      at HTMLDocument.a (angular.js:2573)
  <html>
    <head>
        <script  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

</head>
<body ng-app="MyModule">
 <div ng-controller="MyController">

 </div>
 <script>
    var mod = angular.module('MyModule',[]);
    mod.provider("myProvider",function()
    {
        this.$get = function()
        {
            return "MyValue";
        };
    });
    mod.service("myService",function()
    {
        this.myFunc = function()
        {
            return "MyValueService";
        };
    });
    mod.factory("myFactory",function()
    {
        return
        {
            myFunc :function()
            {
                return "MyValueFactory";
            }
        }
    });
    mod.controller("MyController",function(myProvider,myService,myFactory)
    {
        console.log("MyController-myProvider"+myProvider);
        console.log("MyController-myService"+myService.myFunc());
        console.log("MyController-myFactory"+myFactory.myFunc());
    });
 </script>
</body>

4

3 回答 3

3

您正在与 JavaScript 的ASI发生冲突。将工厂的退货声明更改为...

return { // note the brace is on the same line here
  // and the rest as normal

工作示例 ~ http://plnkr.co/edit/2CquJUcUU005F6CBpnky?p=preview

另见〜https ://stackoverflow.com/a/3218860/283366

于 2017-01-23T04:06:10.720 回答
0

做这个..

 mod.factory('myFactory',function ()
    {
        return {
            myFunc:function () {
              return "MyValueFactory";
            }
        }
    });
于 2017-01-23T04:08:21.657 回答
0

像这样缩进你的代码

</head>
<body ng-app="MyModule">
 <div ng-controller="MyController">

 </div>
 <script>
    var mod = angular.module('MyModule',[]);
    mod.provider("myProvider",function()
    {
        this.$get = function() {
            return "MyValue";
        };
    });
    mod.service("myService",function()
    {
        this.myFunc = function() {
            return "MyValueService";
        };
    });
    mod.factory("myFactory",function()
    {
        return {
            myFunc :function() {
                return "MyValueFactory";
            }
        }
    });
    mod.controller("MyController",function(myProvider,myService,myFactory)
    {
        console.log("MyController-myProvider"+myProvider);
        console.log("MyController-myService"+myService.myFunc());
        console.log("MyController-myFactory"+myFactory.myFunc());
    });
 </script>
</body>
于 2017-01-23T04:28:01.930 回答