首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块无法加载

问模块无法加载
EN

Stack Overflow用户
提问于 2016-12-08 16:43:26
回答 2查看 369关注 0票数 1

AngularJS v1.6.0.

如何理解哪些模块无法加载?为什么以及如何修复它?

我得到以下错误:

代码语言:javascript
复制
angular.js:38 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.6.0/$injector/modulerr?p0=fooApp&p1=Error%…c%20(http%3A%2F%2Fviic.com%2Flibs%2Fangular%2Fangular.min.js%3A21%3A332)(…)(anonymous function) @ angular.js:38(anonymous function) @ angular.js:4756q @ angular.js:357g @ angular.js:4717eb @ angular.js:4639c @ angular.js:1838Lc @ angular.js:1859oe @ angular.js:1744(anonymous function) @ angular.js:32890b @ angular.js:3314
www-embed-player.js:218 GET https://googleads.g.doubleclick.net/pagead/id net::ERR_BLOCKED_BY_CLIENTRd @ www-embed-player.js:218Vd @ www-embed-player.js:222(anonymous function) @ www-embed-player.js:249L @ www-embed-player.js:173re @ www-embed-player.js:246xk @ www-embed-player.js:654(anonymous function) @ www-embed-player.js:705(anonymous function) @ S0Q4gqBUs7c?controls=0&showinfo=0&enablejsapi=1&showsearch=0&rel=0:10

我的应用程序前端结构:

代码语言:javascript
复制
- public
  - js/controllers/VideoChannelCtrl.js
  - js/services/CoubService.js
  - js/app.js
  - js/appRoutes.js
  - index.html
  - views/player.html
  - libs/angular/angular.min.js
  - libs/angular-route/angular-route.min.js
  ...

index.html

代码语言:javascript
复制
 ...
 <script src="libs/angular/angular.min.js"></script>
 <script src="libs/angular-route/angular-route.min.js"></script>
 <script src="js/app.js"></script>
 <script src="js/controllers/VideoChannelCtrl.js"></script>
 <script src="js/services/CoubService.js"></script>
 <script src="js/appRoutes.js"></script>
 ...

js/app.js

代码语言:javascript
复制
var fooApp = angular.module('fooApp', ['ngRoute', 'appRoutes', 'VideoChannelCtrl', 'CoubService']);

js/appRoutes.js

代码语言:javascript
复制
angular.module('appRoutes', [])
    .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    $routeProvider

        // home page
        .when('/', {
            templateUrl: 'views/player.html',
            controller: 'VideoChannelController'
        });

    $locationProvider.html5Mode(true);

}]);

js/控制器/VideoChannelCtrl.js ChannelCtrl.j

代码语言:javascript
复制
fooApp.controller('VideoChannelController', ['$scope', 'Coub', function($scope, Coub) {

    $scope.tagline = 'To the moon and back!';

    Coub.get().success(function(data) {
        $scope.videolink = data[0].url;
    });
}]);

js/services/CoubService.js

代码语言:javascript
复制
angular.module('CoubService', []).factory('Coub', ['$http', function($http) {
    return {
        get : function() {
            return $http.get('/api/videolinks');
        },
        delete : function(id) {
            return $http.delete('/api/videolinks/' + id);
        };
}]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-08 17:03:03

您没有正确地注入VideoChannelController控制器。

我建议你这样宣布你的控制器:

js/controllers/VideoChannelCtrl.js

代码语言:javascript
复制
angular.module('fooApp')
  .controller('VideoChannelController', VideoChannelController);

VideoChannelController.$inject = ['$scope', 'Coub'];

function VideoChannelController($scope, Coub) {

  $scope.tagline = 'To the moon and back!';

    Coub.get().success(function(data) {
        $scope.videolink = data[0].url;
    });
}

由于VideoChannelController控制器被声明为fooApp模块应用程序的控制器,因此不需要注入,如下所示:

代码语言:javascript
复制
var fooApp = angular.module('fooApp', ['ngRoute', 'appRoutes', 'VideoChannelCtrl', 'CoubService']);

您可以从此声明中删除VideoChannelController。

此外,您还应该参考以下AngularJS开发准则:

票数 2
EN

Stack Overflow用户

发布于 2016-12-08 16:52:13

VideoChannelCtrl是控制器还是模块?如果它是一个控制器,那么您就不能将它作为模块依赖注入。从模块依赖项中删除它- angular.module('fooApp', ['ngRoute', 'appRoutes', 'CoubService']);

或者创建单独的模块,并在该模块中包含此控制器,并注入新创建的模块。检查你的应用程序中是否真的需要有多个模块。根据我从给定代码中假设的情况,您不需要多个模块。

例如,您可以在相同的fooApp中获得这样的服务:angular.module('fooApp').factory('Coub', ....);

angular.module('fooApp') ->获取已经注册的fooApp模块,您可以将控制器/服务/指令等添加到同一个模块中。

因此,如果将给定的控制器、服务和配置添加到fooApp模块中,则可以将该模块定义为angular.module('fooApp', ['ngRoute']);。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41044544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档