1.angularInit 初始化
页面中是否有ng-app指令,如果有的话,则启动;若果没有的话,则需要手动启动。
自动启动:
if (appElement) {//如果appelement存在,则执行。
bootstrap(appElement, module ? [module] : []);
}
2.provider与injector
1.依赖注入
ng中最简单的依赖是内联注入,它还有2种,分别为推断式注入和标注式注入。
直接使用$injector。 *一般很少使用。
推断式注入:
var myModule = angualr.module("myModule", []);
var ctrl = function($scope) {
$scope.name = "2222";
}
myModule.controller("ctrl", ctrl);
标注式注入:
var myModule = angualr.module("myModule", []);
var ctrl = function(name) {
name = "2222";
}
ctrl.$inject = [‘$scope‘];
注射器Injector:
var myModule = angualr.module("myModule", []);
myModule.factory(‘game‘, function() {
return {
ganmeName: ‘11111‘
}
}
myModule.controller(‘Myctrl‘, [‘$scope‘, ‘$injector‘,
function($scope, $injector) {
$injector.invoke(function(game) {
console.log(game.gameName);
]);
}
});
Provider模式与ng实现:
Provider模式是策略模式和工厂模式的综合体;
核心目的是为了让接口和实现分离;
在ng中,所有provider都可以用来进行注入:
provider/factory/service/constant/value
一下类型的函数可以接受注入:
controller/directive/filter/service/factory德国
在ng中的“依赖注入”是欧诺个过provider和ijector这2个机制联合实现;
var myModule = angular.module("myModule", []);
myModule.provider("HelloAngular", function() {
return {
$get: function() {
var name="sss";
function getName() {
return name;
}
return {
getName: getName
}
}
}
});
myModule.controller(‘MyCtrl‘, [‘$scope‘, ‘HelloAngualr‘,
function($scope, HelloAngualr) {
$scope.gameName = helloAngualr.getName();
}])