转自:https://www.cnblogs.com/best/tag/Angular/

AngularJS 目前的版本没有遵循 Javascript 约定的 AMD 模块化规范, 因此使用 RequireJS 加载 AngularJS 时需要一些额外的配置。

通过查阅 RequireJS 的文档, RequireJS 通过配置可以支持支持动态加载没有遵循 AMD 规范的脚本, 接下来就看一下怎么配置:

先在页面引入 RequireJS 脚本, 这个很简单, 只要一个 script 标记:

< script type="text/javascript" src="scripts/lib/require/require.js" data-main="scripts/main"></script>

RequireJS 会自动加载脚本 scripts/main.js , 在 main.js 文件里面进行配置, 来动态加载 AngularJS , 文件内容以及说明如下:

requirejs.config({
// 所有脚本的跟目录, 相对于 html
baseUrl: 'scripts',
paths: {
// angular 脚本的路径, 相对于 baseUrl
'angular': 'lib/angular/angular',
'angular-route': 'lib/angular/angular-route'
},
shim: {
// 需要导出一个名称为 angular 的全局变量, 否则无法使用
'angular' : { exports: 'angular' },
// 设置 angular 的其它模块依赖 angular 核心模块
'angular-route': { deps: ['angular'] }
}
});

完整的配置请看这里: RequireJS Shim for AngularJS 1.3.0

有了上面的配置之后, 在文件的结尾添加下面的测试:

require(['angular','angular-route'], function(angular){
console.info(angular.version);
});

这样页面加载完之后会在浏览器的 Javascript 的控制台有如下输出:

{full: "1.3.0", major: 1, minor: 3, dot: 0, codeName: "superluminal-nudge"}

AngularJS 貌似加载成功了, 写一个简单的 app.js 来验证一下, app.js 自然要遵循 AMD 规范, 和原生的 AngularJS App 稍微有些不同, 文件内容如下:

// 将 app 定义成一个 AMD 模块, 依赖于 angular , 这样 RequireJS
// 加载 app 时会自动加载 angular 。
define('app', ['angular'], function(angular) {
// 使用严格模式
'use strict';
// 定义 angular 模块
var app = angular.module('app', []);
// 定义 DemoController , 只定义一个属性 greeting 给界面绑定。
app.controller('DemoController', ['$scope', function($scope) {
$scope.greeting = 'Hello, world!';
}]);
return app;
});

将 main.js 文件中的测试代码改成下面这个样子:

require(['app'], function(app){
// do nothing.
});

再写一个简单的 HTML 视图页面, 内容如下:

运行如下图所示:

47.使用 RequireJS 加载 AngularJS的更多相关文章

  1. RequireJs加载Codemirror,配合AngularJS的坑

    requireJS加载codemirror,并且配合angularJs一起使用的时候,高亮显示代码编辑器.要注意以下几点: 1:普通Js加载CodeMirror  代码如下: <!DOCTYPE ...

  2. seajs加载angularjs

    angularjs是自动完成模块的控制的,而seajs加载模块是异步的,所以不做修改,直接seajs加载angularjs会出错.            在这里讲下自己的解决方法 一.需要把ng-ap ...

  3. requireJS 加载css、less文件

    -- requireJS 同样可以加载css 文件,有require-css的插件,只需要把插件放入main.js同文件夹,在依赖处 采用 ‘css! test.css’的形式就可以加载css文件 - ...

  4. requirejs按需加载angularjs文件

    之前分享了一篇用ocLazyLoad实现按需加载angular js文件的博客.本来当时想会使用一种方法就行了.可最近刚好有时间,在网上查找了一下requirejs实现angular js文件按需加载 ...

  5. RequireJS 加载 easyui

    requireJS 可以让js加载起来比较优雅,像java里import一样.有了这个,我们可以创建自己的 js控件库,在需要时,页面中只引入 requireJS,然后通过代码方式引入需要用到的控件, ...

  6. Requirejs加载超时问题的一个解决方法:设置waitSeconds=0

    有时Requirejs会遇到加载js超时问题 除了排查js脚本问题,网络问题以外的一个解决方法是加大Require的等待时间waitSeconds,或者直接设置为0,这个参数的意义是:The numb ...

  7. requirejs加载css样式表

    1. 在 https://github.com/guybedford/require-css 下载到require-css包 2. 把css.js或者css.min.js复制到项目的js目录下 3. ...

  8. RequireJS加载ArcGIS API for JavaScript

    1.在main.js中配置ArcGIS API for JavaScript require.config({ paths : { //arcgisJS "esri": " ...

  9. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

随机推荐

  1. 8个超实用的Java测试工具和框架

    Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environme ...

  2. Oracle 后台进程介绍

    一 进程分类: 1.服务器进程(server process): 依据客户请求完毕工作.如接收和处理应用发送的SQL语句 2.后台进程(background process): 随数据库而启动,用于完 ...

  3. UI自动化

    1.下载安装JDK,配置环境变量 2.下载eclips,并安装 3.下载jskuli截图工具,并安装 4.下载Jspec插件,将其放在eclipse路径下的\plugins文件夹中.(打开eclips ...

  4. MVC 从View像Controller中传值

    在上一篇博客中总结了一下从Controller像View中传值的几种方法.事实上看那些方法和在我们最初学习VB的时候一样,将数据库中的数据显示到前台的页面.数据库还是那个数据库,仅仅是如今前台变成了浏 ...

  5. CoreData 从入门到精通(五)CoreData 和 TableView 结合

    我们知道 CoreData 里存储的是具有相同结构的一系列数据的集合,TableView 正好是用列表来展示一系列具有相同结构的数据集合的.所以,要是 CoreData 和 TableView 能结合 ...

  6. 前后端分离跨域 关于前后端分离开发环境下的跨域访问问题(angular proxy=>nginx )

    前后端分离后遇到了跨域访问的问题: angular1中使用proxy很麻烦,最后还是失败结束:最后总结3种方法如下: 本人使用的第一种方法,只是开发环境下使用很方便! 1:禁掉谷歌的安全策略(Turn ...

  7. MySQL循环语句之while循环测试

    转自:http://www.nuoweb.com/database/7614.html MySQL有循环语句操作,while 循环.loop循环和repeat循环,目前我只测试了 while 循环,下 ...

  8. java布局管理

    FlowLayout :组件在一行中按加入的先后顺序从左至右水平排列,排满后折行,每行中的组件都居中排列.BorderLayout:把容器空间划分为北.南.西.东.中五个区,每加入一个组件都应说明把这 ...

  9. Elasticsearch开发环境搭建(Eclipse\MyEclipse + Maven)

    前提是, Elasticsearch 编程API入门系列---说在前面的话 Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) setting.xml配置文件 如何在M ...

  10. CentOS_mysql8.0_错误

    #参考资料 CSND:https://blog.csdn.net/y_server/article/details/78781177 博客园:http://www.cnblogs.com/testwa ...