我正在开发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'不可用!你要么拼错了 模块名称或忘记加载它。如果注册模块,请确保 您将依赖项指定为第二个参数。
非常感谢任何有用的提示。
答案 0 :(得分:0)
我可以想象,您使用diction.controllers
作为角度的参考,并没有创建它。
使用
尝试diction.controllers
初始化部分
angular.module('diction.controllers', []);
因此导致
angular.module('diction.controllers', [])
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
// logic
}]);