angular1.0常用总结
watch,apply,module,config,service,路由等
(做公司老项目,没办法,头大)
-
$scope.$watch(watchItems,watchAction[,deepWatch]):监视数据的变化
① watchItems(字符串):
① 如果是单一变量:直接’变量名‘即可
② 如果是多个变量:可用‘+‘连接变量,‘变量1 + 变量2’
③ 如果是数组,对象:可用’user.name‘监听其中属性,也可直接监听‘user’,默认浅层监听
② watchAction(函数):
发生变化的时候触发此函数
③ deepWatch(布尔值):
true为开启深层监听,默认为false不开启 -
$scope.$apply([t]):强制刷新数据,更新界面
大部分情况会自动调用,会自动用apply包裹,且apply()中不能使用apply()如果使用会报错,所以只有在少数没更新的情况才使用
例,在定时其中修改state,但页面没有更新:
setTimeout(function () {
$scope.message =“Timeout called!”;
}, 2000);
此时可写成:
setTimeout(function () {
$scope.$apply(function () {
$scope.message =“Timeout called!”;
});
}, 2000);
或
setTimeout(function () {
$scope.message =“Timeout called!”;
$scope.$apply();
}, 2000);注:为了保险可以先判断$$phase,它是angluar内部使用的状态标志位,用于标识当前是否处于digest状态,例
if (!$scope.$$phase) {
$scope.$apply();
}
注:类似的还有$digest(),只不过apply是会更新全部,而 -
作用域定义,模块注入:var app = angular.module(‘myApp’, [‘ui.bootstrap’]);
-
加载配置,拦截器与路由的配置一般在其中:app.config(funtion(){…})
-
自定义指令 :app.directive(‘xxx’, function(){…});
-
定义控制器 :app.controller(‘xxx’, function($scope){…});
-
自定义过滤器:app.filter(‘xxx’, function(){…});
-
自定义服务(数据访问,逻辑处理):app.service(‘xxx’, function(){…})
(还有很多内置服务,$location,$http,$timeout,$interval等等)
(官方认为组件不应该直接获取或保存数据, 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务。而服务就充当着数据访问,逻辑处理的功能。把组件和服务区分开,以提高模块性和复用性) -
依赖注入:是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分
AngularJS 提供很好的依赖注入机制,以下5个核心组件用来作为依赖注入:
① value
② factory
③ service
④ provider
⑤ constant -
angular路由样例:
<body ng-app=‘routingDemoApp’>
<h2>AngularJS 路由应用</h2>
<ul>
<li><a href=“#!/”>首页</a></li>
<li><a href=“#!/computers”>电脑</a></li>
<li><a href=“#!/printers”>打印机</a></li>
<li><a href=“#!/blabla”>其他</a></li>
</ul>
<div ng-view>
<script>
angular.module(‘routingDemoApp’,[‘ngRoute’])
.config([‘$routeProvider’, function($routeProvider){
$routeProvider
.when(‘/’,{template:‘这是首页页面’})
.when(‘/computers’,{template:‘这是电脑分类页面’})
.when(‘/printers’,{template:‘这是打印机页面’})
.otherwise({redirectTo:‘/’});
}]);
</script>
</body>
更多推荐
所有评论(0)