AngularJS多个控制器和Grunt错误

时间:2014-10-26 15:08:51

标签: javascript angularjs node.js controllers

无法让多个控制器与Grunt一起使用。 Grunt不是问题,因为简单地手动组合文件也不起作用。我正在尝试使用Grunt和单个控制器构建应用程序,每个文件一个,以构建应用程序。

控制器位于使用Grunt组合和缩小的单个文件中。这是有效的,模块在缩小之前看起来是正确的。未经证实的示例在script.js。

我收到以下错误: 错误:错误:unpr 未知提供商

'use strict';
angular.module('OntarioDarts', []);

// Source: app/Modules/Events/EventController.js
angular.module('OntarioDarts').controller('EventCtrl', function ($scope) {
    $scope.Events = [
        {
            'Id': 1,
            'Name': '12th Annual Frank Hanlon Tournament',
            'Date': 20150117,
            'Time': 1000,
            'Image': 'images/Events/FrankHanlon20150128.jpg',
            'Flyer': ''
        },
        {
            'Id': 2,
            'Name': '1st Annual Ken Cadieux Memorial Christmas Tournament',
            'Date': 20141227,
            'Time': 1000,
            'Image': 'images/Events/KenCadieux20141227.jpg',
            'Flyer': ''

        },
        {
            'Id': 3,
            'Name': '8th Annual Presidents Cup Tournament',
            'Date': 20150313,
            'Time': 2000,
            'Image': 'images/Events/PresidentsCup20150314.jpg',
            'Flyer': ''
        }
    ];
    $scope.ImageSettings = [{ 'Height': 200, 'Width': 155 }];
});

// Source: app/Modules/Leagues/LeagueController.js
angular.module('OntarioDarts').controller('LeagueCtrl', function ($scope) {
    $scope.Leagues = [
        { 'Id': 1, 'Name': 'Dixie Summer Dart League' },
        { 'Id': 2, 'Name': 'Etobicoke Pub Dart League'  },
        { 'Id': 3, 'Name': 'Region of Peel Dart League'}
    ];
});

// Source: app/Modules/Schedules/ScheduleController.js
angular.module('OntarioDarts').controller('ScheduleCtrl', function ($scope) {
    $scope.Schedules = [
        { "Id": 1, "Name": "November 1, 2014" },
        { "Id": 2, "Name": "November 5, 2014" }
    ];
});

// Source: app/Modules/Teams/TeamController.js
angular.module('OntarioDarts').controller('TeamCtrl', function ($scope) {
    $scope.Teams = [
        { 'Id': 1, 'Name': 'Team 1' },
        { 'Id': 2, 'Name': 'Team 2' }
    ];
});

//# sourceMappingURL=OntarioDarts.js.map

Plunker

1 个答案:

答案 0 :(得分:1)

我刚在plunker中发现文件名是script.js而不是scripts.js。在html中引用错误。

缩小时请考虑这个

以下是最简单的写作方式

angular.module('OntarioDarts').controller('EventCtrl', ['$scope', function ($scope) {
   //controller code goes here
}]);

你必须使用控制器函数的数组表示法来理解$ scope。

['$scope', function ($scope) {
   //controller code goes here
}]