在循环中添加Angular Controller

时间:2016-05-15 02:11:54

标签: javascript arrays angularjs ionic-framework requirejs

问题:我尝试按角度将数组添加到我的app模块。 我的设置是Ionic + Angular + requireJS。

controllers.js

/*global define, require */

var controllers;
define(function (require) {

'use strict';

var angular = require('angular'),
[...]
controllers = angular.module('app.controllers', ['app.services', 'app.config']);

controllers.controller('SidebarMenuCtrl', require('controllers/SidebarMenuCtrl'));
controllers.controller('DefaultCtrl', require('controllers/DefaultCtrl'));

[...]

现在我的问题部分:

var ctrls = ['aboutCtrl', 'loginCtrl', 'infoCtrl'];
for (var k in ctrls) {
    controllers.controller(ctrls[k], require('controllers/' + ctrls[k]));
}

requirejs现在说

  

模块名称“controllers / aboutCtrl”尚未加载上下文

并且我尝试在循环内加载每个其他控制器。

我上面加载的控制器工作正常 所以我觉得它与requirejs没有直接关系。

[编辑]:我现在通过在使用requirejs'回调在.controller()中使用该文件之前要求该文件来修复它:

for (var k in ctrls) {
            require(['controllers/'+ctrls[k]], function (c) {
                controllers.controller(ctrls[k], c);
            });
        }

问题仍然存在:为什么requirejs不能像循环一样完成它的工作?

0 个答案:

没有答案