angularjs MVC $scope作用域 AngularJS模块的run方法,以及依赖注入中代码压缩问题
1、AngularJS MVC
model:数据模型层
view:视图层,负责展示
controller:业务逻辑和控制逻辑
优点:代码模块化 代码逻辑比较清晰、可移植性高、后期维护方便,代码复用,代码模块越来越大的时候,切分职责是大势所趋。
缺点:运行效率稍低一些
2、AngularJS $scope作用域
$scope多控制器单独作用域
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<script type="text/javascript" src="angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="firstController">
{{name}}
</div>
<div ng-controller="secondController">
{{name}}
</div>
</div>
<script type="text/javascript">
var app=angular.module("myApp",[]);
app.controller('firstController',function($scope){
$scope.name='zhangsan';
});
app.controller('secondController',function($scope){
$scope.name='lisi';
})
</script>
</body>
</html>
|
2 $rootScope服务
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<script type="text/javascript" src="angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="firstController">
姓名:{{name}}
年龄:{{age}}
</div>
<div ng-controller="secondController">
姓名:{{name}}
年龄:{{age}}
</div>
</div>
<script type="text/javascript">
var app=angular.module("myApp",[]);
app.controller('firstController',function($scope,
$rootScope){
$scope.name='zhangsan';
$rootScope.age='30';
});
app.controller('secondController',function($scope){
$scope.name='lisi';
})
</script>
</body>
</html>
|
控制器继承
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<script type="text/javascript" src="angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="firstController">
{{name}}
{{age}}
{{sex}}
</div>
<div ng-controller="secondController">
{{name}}
{{age}}
{{sex}}
</div>
</div>
<script type="text/javascript">
var app=angular.module("myApp",[]);
app.controller('firstController',function($scope){
$scope.name='zhangsan';
$scope.age='40';
});
app.controller('secondController',function($scope){
$scope.name='lisi';
$scope.sex='男';
})
</script>
</body>
</html>
|
依赖注入中代码压缩的问题
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<script type="text/javascript" src="angular.min.js"></script>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="firstController">
{{name}}
{{age}}
{{sex}}
</div>
<div ng-controller="secondController">
{{name}}
{{age}}
{{sex}}
</div>
</div>
<script type="text/javascript">
var app=angular.module("myApp",[]);
app.controller('firstController',['$scope',function($scope){
$scope.name='zhangsan';
$scope.age='40';
});
app.controller('secondController',['$scope',function($scope){
$scope.name='lisi';
$scope.sex='男';
})
</script>
</body>
</html>
|
4 AngularJS模块的run方法
run方法初始化全局的数据,只对全局作用域起作用 如$rootScope
<script type="text/javascript">
var m1=angular.module('myApp',[]);
m1.run(['$rootScope',function($rootScope){
$rootScope.name='hello'
}]);
console.log(m1);
</script>
|