Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将文件分离到目录时加载模块时出现问题_Angularjs_Ruby On Rails 4 - Fatal编程技术网

Angularjs 将文件分离到目录时加载模块时出现问题

Angularjs 将文件分离到目录时加载模块时出现问题,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

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

我目前拥有所有AngularJS控制器、配置、路由和工厂。我试图将这些实体分离到指定的目录中(即,见下文)

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

controllers/guest.js

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
}]);