具有动态路径和动态依赖性的角度模块化

时间:2015-01-07 09:35:00

标签: javascript angularjs module lazy-loading angular-ui-router

我有一个关于动态获取主模块的路由和依赖关系的问题。我现在已经研究了这个超过3天,并且没有找到满意的答案。我发现了一些看起来很接近的东西,但它不是我想要的东西,我不想懒惰加载我的模块或只是动态地设置路线。

所以我会尽可能清楚地解释我的需求: 在我的项目中有一个名称共享的文件夹,其中包含一些可重用的模块。我需要我的app.js通过拖放模块和依赖来实现路由而无需手动更改!

有人有解决方案吗? 感谢您的时间和帮助

1 个答案:

答案 0 :(得分:0)

此代码段可以满足您的动态模块分辨率要求。 创建deps数组,然后将其传递给“define”方法(由requirejs注册)。 将所有相关的依赖项放在同一个文件夹中。对于每个模块,您可以创建单独的js文件。每次我需要一个新服务时,我都会为该服务创建一个单独的js文件,并将其放在'services'目录中,最后将新服务名称附加到依赖数组中。并且可以使用新模块。

(function () {
    (function (deps) {

        window.app.utils.appendPrefixToPaths(window.app.paths.services.out.get(), deps);

        deps.unshift("2.services/directive");
        deps.unshift("2.services/view");
        deps.unshift("2.services/preference");
        deps.unshift("2.services/alert");
        deps.unshift("2.services/materialDataTable");
        deps.unshift("2.services/security");
        deps.unshift("2.services/theme");
        deps.unshift("1.directives/_");

        define(deps, function (obj) {
            return obj;
        });

    })(window.app.services.fileNames.get());
})();