Angularjs 将文件分离到目录时加载模块时出现问题
我正在开发AngularJS1和Rails 4.2应用程序。我正在使用AngularRailsTemplates加载我的AngularJS模板 我目前拥有所有AngularJS控制器、配置、路由和工厂。我试图将这些实体分离到指定的目录中(即,见下文) 我已将控制器和工厂文件分离为模块。例如,在我的控制器目录中,我有两个控制器文件: controllers/guest.jsAngularjs 将文件分离到目录时加载模块时出现问题,angularjs,ruby-on-rails-4,Angularjs,Ruby On Rails 4,我正在开发AngularJS1和Rails 4.2应用程序。我正在使用AngularRailsTemplates加载我的AngularJS模板 我目前拥有所有AngularJS控制器、配置、路由和工厂。我试图将这些实体分离到指定的目录中(即,见下文) 我已将控制器和工厂文件分离为模块。例如,在我的控制器目录中,我有两个控制器文件: controllers/guest.js angular.module('diction.controllers') /* Guest Controller
angular.module('diction.controllers')
/* Guest Controller
* controller for static clientside for guest users
*
*/
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
// logic
}]);
controllers/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”模块不可用!你要么拼错了
模块名或忘记加载它。如果注册模块,请确保
指定依赖项作为第二个参数
非常感谢任何有用的提示 我可以想象,您使用
diction.controllers
作为angular的引用,而不是创建它
尝试使用diction.controllers
init部分
angular.module('diction.controllers', []);
所以结果是
angular.module('diction.controllers', [])
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
// logic
}]);
所以我需要在每个控制器文件中包含init(依赖项)部分?不,但是您必须初始化一次模块(具有依赖项),然后再引用它(没有依赖项)index.html呢?您是否将js文件包含在依赖项中?就像这样。。。
angular.module('diction.controllers', [])
.controller('GuestCtrl', ['$scope', '$stateParams', 'Auth', '$http', '$window',
// logic
}]);