AngularJS - 错误:ng:areq - Bad Argument控制器不是函数

时间:2016-12-07 13:35:51

标签: angularjs

我正在阅读Angularjs Essentials一书 - http://www.goodreads.com/book/show/23139559-angularjs-essentials

我试图遵循代码exmaples。

我有这个有我的代码

的plunker

https://plnkr.co/edit/jFK3ooODMChtXJqO7syf?p=preview

在Chrome中本地

我收到错误

    Error: ng:areq
    Bad Argument

    Argument 'parkingCtrl' is not a function, got undefined

我确定问题是角度模块中的语法'位于controller.js,services.js或directive.js

的顶部

任何人都可以看到我做错了什么或者如何阻止此错误

2 个答案:

答案 0 :(得分:3)

当您定义服务时,您已使用此语法angular.module('parking', [])再次重新创建应用程序,这就是在加载此文件后已定义的控制器不再存在的原因。因此,您可以将此更改为angular.module('parking'),如下所示services.js文件将解决问题

angular.module('parking').factory("parkingService", function() {
    var _calculateTicket = function (car) {
        var departHour = new Date().getHours();
        var entranceHour = car.entrance.getHours();
        var parkingPeriod = departHour - entranceHour;
        var parkingPrice = parkingPeriod * 10;
        return {
            period: parkingPeriod,
            price: parkingPrice
        };
    };
    return {
        calculateTicket: _calculateTicket
    };
});

答案 1 :(得分:0)

有两个问题

(i)更改plunker中的参考文献

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>

(ii)无需为服务 parkingService 注入依赖项,将其更改为

angular.module('parking').factory("parkingService", function() {
}

<强> DEMO