1. *模块
1.1 在AngularJS中,模块是定义应用的最主要方式。模块包含了主要的应用代码。一个应用可以包含多个模块,每一个模块都包含了定义具体功能的代码。1.2 定义模块:
var myModule = angular.module("HelloAngular", []);
参数一:name(字符串),name是模块的名称,字符串变量。
参数二:requires(字符串数组),requires包含了一个字符串变量组成的列表,每个元素都是一个模块名称,本模块依赖于这
些模块,依赖需要在本模块加载之前由注入器进行预加载。
2. *服务
2.1 服务
2.1.1 服务是单例的2.1.2 当我们需要在不同的域中共享数据的时候,就应该使用服务
2.2 provider模式与ng实现
2.2.1 provider模式是策略模式和工程模式的综合体2.2.2 核心目的是为了让接口和实现分离
2.2.3 在ng中,所有的provier都可以用来进行注入 provider/factory/service/constant/value
2.2.4 以下类型的函数可以接受注入 controller/directive/filter/service/factory
2.2.5 ng中的依赖注入是通过provider和injector这两个机智联合实现的
2.3 provider/factory/service/constant/vlaue
2.3.1 provider是基础,其余都是调用provider函数实现的,只是参数不同2.3.2 从左到右,灵活性越来越差
2.4 创建服务
var myModule = angular.module("MyModule", []);
myModule.factory(‘hellpAngular’, function(){
this.name = ‘’;
this.getName = function(){
return this.name;
}
})
mApp.service('indexService', function(){
return {
getMainClassify : function(){
return ‘aa’;
}
};
});
myModule.controller('MyCtrl',['$scope',‘helloAngular’,
function($scope, helloAngular){
$scope.sayHello=function(name){
alert("Hello "+name);
}
}])
2.6 provider方式
var myModule = angular.module("MyModule", []);
myModule.provider(‘hellpAngular’, function(){
return {
$get:function(){
var name = ‘慕课网’;
function getName(){
return name;
}
return {
getName : getName
}
}
}
})
myModule.controller('MyCtrl',['$scope',‘helloAngular’,
function($scope, helloAngular){
$scope.sayHello=function(name){
alert("Hello "+name);
}
}])
2.7 factory方式
var myModule = angular.module("MyModule", []);
myModule.factory(‘hellpAngular’, function(){
function getName(){
return name;
}
return {
getName : getName
}
})
myModule.controller('MyCtrl',['$scope',‘helloAngular’,
function($scope, helloAngular){
$scope.sayHello=function(name){
alert("Hello "+name);
}
}])
3. 控制器
3.1 控制器的作用
3.1.1 controller应该纯粹地用来把service、依赖关系、以及其它对象串联到一起,然后通过scope把它们关联到view上3.2 控制器
myModule.controller("MyController", ['$scope', '$filter',
function($scope, $filter) {
$scope.add = $filter('addHello')('aaa');
}
]);