angularjs – 在meanjs中注入自定义模块的最佳实践

前端之家收集整理的这篇文章主要介绍了angularjs – 在meanjs中注入自定义模块的最佳实践前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
据我所知,没有模块的经典注册,我们可以在其中注入依赖项,如:

var myModule = angular.module('myModule',[otherModule]);

但是在directorys的根目录下有文件module-name.client.module.js

'use strict';
// Use Applicaion configuration module to register a new module
ApplicationConfiguration.registerModule('module-name');

我可以在这里注入我的模块,如* .registerModule(‘module-name’,[someModule]);或者我应该在angular.module(‘articles’)中配置.config(…)?

但在配置中我只能注入提供者,没有工厂

解决方法

至于我使用角度,加载自定义模块和外部库的最佳做法
是将angularjs与requirejs结合起来.

它完成了3步.

首先,在主html文件中加载一个构建系统基础的js文件(require.config):
在这里您可以获得所有参数:https://github.com/jrburke/r.js/blob/master/build/example.build.js

示例:
在你的html文件中:

<script src="path/to/require.js" data-main="path/to/yourBuildFile"></script>

在yourBuildFile文件中:

require.config({
    // you can define suitable names for all your external js library
    paths:{
        // don't put a ".js" at the end of the file
        'angular' : 'path/angular','underscore' : 'path/underscore-min','...': '...',},// and other useful things
});

其次,在同一个文件或另一个文件中(参见上面链接中的参数deps),引导您的应用:
像这里解释的那样:https://docs.angularjs.org/guide/bootstrap

例:

// AMD module injection,more info here : http://requirejs.org/docs/whyamd.html
define([ // inject all the external library you need + the definition of your app
    'angular','require','yourpath/yourApp' // don't bother here,it's explained in third point
],function(angular){
    // link your app to the document file programatically
    angular.bootstrap(document,['nameOfYourApp']); 
});

第三,你定义你的应用程序(在“yourpath / yourApp”中)

例:

define([
    'angular',// put all path to your directives + controllers + services
],function(angular){ // only specify parameters the library you use in the function
    // you create your sublime app :)
    angular.module('nameOfYourApp',[
        // put all the name of your modules injected above
    ]);
});

以上示例适用于单页面应用程序.
您可以在此处找到多页应用程序的其他示例
http://requirejs.org/docs/start.html

猜你在找的Angularjs相关文章