【问题标题】:Problems loading module when separating files into directories将文件分离到目录时加载模块时出现问题
【发布时间】:2016-01-15 22:00:25
【问题描述】:

我正在开发一个 AngularJS 1 和 Rails 4.2 应用程序。我正在使用 AngularRailsTemplates 加载我的 AngularJS 模板。

我目前在one single file 中拥有所有 AngularJS 控制器、配置、路由和工厂。我正在尝试将这些实体分隔到指定目录中(即见下文)。

| application.js

    | controllers
        | guest.js
        | user.js

    | factories
        | lists.js

    | templates
        | home.html
        | dashboard.html

我已将控制器和工厂文件分成模块。例如,在我的控制器目录中,我有两个控制器文件:

控制器/guest.js

angular.module('diction.controllers')

/*  Guest Controller 
 *  controller for static clientside for guest users
 *
*/
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
    // logic
}]);

控制器/user.js

angular.module('diction.controllers')

/*  User Controller 
 *  controller for users
 *
*/
.controller('UserCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
    // logic
}]);

我正在尝试将这些控制器模块加载到我的 application.js 文件中,它目前看起来像这样。

//= require angular-rails-templates
//= require_tree .

angular.module('diction', [
    'ui.router', 
    'templates', 
    'diction.controllers'
])

/*  Routing configuration for various 'states'
 *
*/
.config(['$stateProvider', '$urlRouterProvider',

    // Set state providers
    function($stateProvider, $urlRouterProvider) {$stateProvider

        // home
        .state('home', {
          url: '/home',
          templateUrl: 'home.html',
          controller: 'GuestCtrl',
        })

    }
]);

当我查看页面时,我收到“模块不可用”错误:

错误:$injector:nomod 模块不可用

模块“diction.controllers”不可用!你要么拼错 模块名称或忘记加载它。如果注册一个模块,请确保 您将依赖项指定为第二个参数。

非常感谢任何有用的提示。

【问题讨论】:

  • 你的 index.html 呢?您是否包含具有依赖项的 js 文件?像这样...

标签: angularjs ruby-on-rails-4


【解决方案1】:

我可以想象,您使用 diction.controllers 作为 Angular 的参考,但没有创建它。

试试diction.controllers init 部分

angular.module('diction.controllers', []);

所以结果是

angular.module('diction.controllers', [])
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
    // logic
}]);

【讨论】:

  • 所以我需要在每个控制器文件中都有 init(依赖)部分?
  • 不,但是你必须在引用它之前初始化一个模块(有依赖关系)(没有依赖关系)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 2021-09-27
  • 2018-04-04
相关资源
最近更新 更多