1.AngularJS 模块

上一章讲的数据绑定,是把控制器的代码写到一个全局命名空间中定义的函数里:

function MyController($scope) {
var updateClock = function() {
$scope.clock = new Date();
};
setInterval(function() {
$scope.$apply(updateClock);
}, 1000);
updateClock();
};

  

在AngularJS 中,模块是定义应用的主要方式,包含了主要的应用代码。一个应用可以包含多个模块,每个模块包含具体的代码。使用模块有许多好处,比如:

  • 保持全局命名空间的清洁
  • 测试更容易找到相互隔离的功能
  • 可以在不同的应用之间复用代码
  • 是应用能够以任意顺序加载代码的各个部分

我们使用angular.module() 方法来声明模块,这个方法接受两个参数,第一个是模块的名称,第二个是依赖列表,中括号[]表示该模块没有依赖,如果有依赖的话会在中括号写上依赖的模块名字。

angular.module(‘myApp‘, []) 方法相当于AngularJS 模块的setter 方法,用来定义模块。

angular.module(‘myApp‘)  方法只传递一个参数,相当于getter 方法,用来引用模块。

开发大型应用时,会创建多个模块类承载业务逻辑。将复杂的功能分割成不同的模块,有助于单独为它们编写测试。

1.创建模块

<div ng-app="myApp">...</div>
<script>
<!--通过angular.module 函数创建模块-->
var app = angular.module("myApp", []);
</script>

  

2.添加控制器

<!--使用ng-controller 指令添加控制器-->
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});
</script>

  

3.添加指令

AngularJS 提供了很多内置的指令,可以用它们来为你的应用添加功能。

<div ng-app="myApp" runoob-directive></div>
<script>
var app = angular.module("myApp", []);
<!--用模块为应用添加自己的指令-->
app.directive("runoobDirective", function() {
    return {
        template : "我在指令构造器中创建!"
    };
});
</script>

  

4.模块和控制器包含在JS文件中

通常AngularJS应用程序将模块和控制器包含在js文件中。

<!DOCTYPE html>
<html>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<!--myApp.js 包含了应用模块的定义程序-->
<script src="myApp.js"></script>
<!--myCtrl.js 包含了控制器-->
<script src="myCtrl.js"></script>
</body>
</html>

  

5.什么时候载入angular.js

对于HTML应用程序,通常建议吧所有的脚本都放置在<body> 元素的最底部。

这回提高网页加载速度,应为HTML加载不受制于脚本加载。

AngularJS 的库文件是在<head>标签里加载的,因为对angular.module 的调用只能在库加载完成后才能进行。

另外也可以在<body>元素中加载,但是必须放在AngularJS脚本前面。

时间: 2024-10-15 15:33:27

1.AngularJS 模块的相关文章

AngularJS 模块加载

AngularJS模块可以在被加载和执行之前对其自身进行配置.我们可以在应用的加载阶段应用不同的逻辑组.在模块的加载阶段, AngularJS会在提供者注册和配置的过程中对模块进行配置.在整个AngularJS的工作流中,这个阶段是唯一能够在应用启动前进行修改的部分. angular.module('myApp', []) .config(function($provide) {}); 使用config()函数的语法糖,并在配置阶段执行.例如,我们在某个模块之上创建一个服务或指令时: angul

AngularJS 模块

模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 你可以通过 AngularJS 的 angular.module 函数来创建模块: <div ng-app="myApp">...</div> <script> var app = angular.module("myApp", []); </script> "myApp" 参数对应执行应

AngularJS 模块&amp; 表单

模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. 应用("myApp") 带有控制器 ("myCtrl"): <div ng-app="myApp" ng-controller="myCtrl"> {{ firstName + " " + lastName }} </div> <script> var app

Angularjs MVC 以及 $scope 作用域 Angularjs 模块 的 run 方法 以及依赖注入中代码压缩问题

Angularjs MVC 以及 $scope 作用域 Angularjs 模块的 run 方法 以及依赖注入中代码压缩问题 1. Angularjs MVCModel:数据模型层View:视图层,负责展示Controller:业务逻辑和控制逻辑优点: 代码模块化 代码逻辑比较清晰.可移值性高,后期维护方便.代码复用,代码规模越来越大的时候,切分职责是大势所趋缺点:运行效率稍微低一些2. Angularjs $scope 作用域1. $scope 多控制器单独作用域<!DOCTYPE html>

2.3了解AngularJS模块和依赖注入

1.模块和依赖注入概述 1.了解模块 AngularJS模块是一种容器,把代码隔离并组织成简洁,整齐,可复用的块. 模块本身不提供直接的功能:包含其他提供功能的对象的实例:控制器,过滤器,服务,动画 可通过定义其提供的对象构建模块.通过依赖注入将模块连接在一起,构建一个完整的应用程序. AngularJS建立在模块原理上.大部分AngularJS提供的功能都内置到ng-*模块中. 2.依赖注入 定义依赖对象并动态地把它注入另一个对象,使得所有的依赖对象所提供的功能都能使用.(提供器 注入器服务)

深入浅出理解AngularJS模块

AngularJS 模块 1.添加控制器 你可以使用 ng-controller 指令来添加应用的控制器: <div ng-app="myApp" ng-controller="myCtrl"> 名: <input type="text" ng-model="firstName"><br>姓: <input type="text" ng-model="la

AngularJS模块——理解小结

在JS中,将函数代码全部定义在全局命名空间上是很不明智的. 在Angular中,将控制器代码封装在模块(module)单元中. 在AngularJs中,模块是定义应用的最主要的方式,模块里面存放了主要的应用代码, 一个应用可以包含多个模块,每一个模块都包含了定义了具体功能的代码. 使用模块的有点:1.可以保持全局命名空间的清洁 2. 应用可以以任何的顺序加载代码的各个部分 AngularJS中声明模块:   angular.module(name,requires), angular.modul

angularjs 模块与控制器 (多个模块module?? 多个控制器controller??)

angularjs 中只能有一个模块module(ng-app=""),一个模块可以有多个控制器(ng-controller="") 自己试验的时候,js跟页面可以写在一块,但是大型项目开发中,最好做到html与js分离,便于以后维护. 下图所示:ng-app只能有一个,一个ng-app 中可以有多个controller ;定义多个ng-app时无意义. 运行效果图如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM

AngularJs模块

//加载AngularJs的主模块: angular.module("mainApp",[]) //依赖注入:被动接收: //$scope:视图和模型之间的绑定全靠$scope 可以有多个;有层次关系: //过滤器 <p>货币:{{250.5 | currency}}</p> 货币:$250.50; 使用多个过滤器用| 分开: //数据库一对多的时候在多的方设置外键约束: //指令 directive: <p ng-class="{"r