AngularJs MVC
|
|
1.模块化
1.1 创建模块
|
|
2.控制器
2.1 创建控制器
|
|
2.2 控制器特点
|
|
2.3 控制器的合理使用
|
|
3.$scope和$rootScope
3.1 注入$scope和$rootScope
|
|
3.2 初始化方法
|
|
3.3 防止代码压缩
|
|
4.$watch和$apply
4.1 $watch监听模型上的值
|
|
- 4.1.1 监听写法1:
|
|
- 4.1.2 监听写法2:1234567app.controller('appCtrl',['$scope',function ($s) {$s.$watch(function () {return $s.name;}, function (newVal,oldVal) {console.log(newVal,oldVal);});}]);
4.2 $watch监听方法
|
|
4.3 $apply刷新视图
4.3.1 原生的方法不会刷新视图
123456789101112页面代码<div ng-controller="appCtrl">{{name}}</div>控制器app.controller('appCtrl',['$scope',function ($s) {$s.name = 1;setInterval(function () {$s.name++},1000)}]);setInterval并不是angular中的方法,不能使用,使用了$apply之后,强制刷新,就可以使用,也可以在agular中注入$interval的服务4.3.2 通知视图刷新
1234567891011121314151617通知方式1:导入服务app.controller('appCtrl',['$scope','$interval',function ($s,$interval) {$s.name = 1;setInterval(function () {$s.name++;$s.$apply();},1000);}]);通知方式2:强制刷新app.controller('appCtrl',['$scope','$interval',function ($s,$interval) {$s.name = 1;setInterval(function () {$s.$apply(function(){$s.name++;});},1000);}]);
4.4 自带的指令会刷新视图
4.4.1 $timeout
123456app.controller('appCtrl',['$scope','$timeout',function ($s,$timeout) {$s.name = 1;$timeout(function () {$s.name++;},1000);}]);4.4.2 $interval
|
|
- 4.4.3 取消定时器12345678app.controller('appCtrl',['$scope','$interval',function ($s,$interval) {$s.name = 1;var timer = $interval(function () {$s.name++;$interval.cancel(timer);},1000);}]);使用cancle的方法,已经是angular自带的指令就不要在调用$apply去通知了
5.ng-href
|
|
6.ng-src
|
|
服务
|
|
- 注入服务12myModule.provider('自定义服务的名字',function(){this.$get=function(){return }注:provider:定义服务