
笔记基于angular 1.3.17 ,虽然现在有2.x还听说1.x和2.x是 跳崖式的升级,很多方法都不一样了,没办法只能去学习老版本了公司项目是基于老版本开发的。
https://www.bootcdn.cn/angular.js/1.3.17/
以上链接还包括一些扩展功能,例如cookie插件、动画效果插件、类似ajax功能的插件等等
代码总揽:
<body ng-app="phonecatApp"> <div ng-controller="PhoneListCtrl"> <li ng-repeat="phone in phones"> <span>{{phone.name}}</span> <span>{{phone.snippet}}</span> </li> </div> <script> var phonecatApp = angular.module('phonecatApp', ['infinite-scroll', 'timer']); // 创建module phonecatApp.controller('PhoneListCtrl', function ($scope, $http,$rootScope) { $scope.phones = [ {'name': '名字1','snippet': '内容1'}, {'name': '名字2','snippet': '内容2'}, {'name': '名字3','snippet': '内容3'} ]; }); </script> </body>
效果:

遮丑
[ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
<body ng-app="phonecatApp" ng-cloak>
全局变量
phonecatApp.controller() 独立的控件之间变量是不能传递,这些需要全局,在任意xx.controller()中都可以调用。
var phonecatApp = angular.module('phonecatApp', ['infinite-scroll']);
phonecatApp.run(function($rootScope){ //声明全局
$rootScope.people ={
name:'小明',
age:'12',
tel:'12233333333'
};
});
phonecatApp.controller('PhoneListCtrl', function ($scope, $http,$rootScope) {
console.log($rootScope.people.name) //小明
});
class判断
<!--第一种 直接加变量-->
<div ng-class="tempClass"></div>
<!--第二种 用{{}} 包住的变量表达式-->
<div ng-class="{{bClass}}"></div>
<!--第三种-->
<div ng-class="{'red':num,'green':!num}"></div>
<!--第四种-->
<div ng-class="{true:'green',false:'red'}[num]"></div>
app.controller('frist',function($scope){
$scope.tempClass = 'green';
$scope.bClass = "{'red':true,'green':false}"
$scope.num = true;
}
滚动加载
借助插件:https://cdn.bootcss.com/ngInfiniteScroll/1.2.0/ng-infinite-scroll.min.js
<script src="angular.min.js"></script>
<script src="ng-infinite-scroll.min.js"></script>
<div ng-controller="PhoneListCtrl">
<div class="box" infinite-scroll="loadMore()" infinite-scroll-disabled="scroll_status" infinite-scroll-distance='1'>
<li ng-repeat="phone in phones">
<span>{{phone.name}}</span>
<span>{{phone.snippet}}</span>
</li>
</div>
</div>
var phonecatApp = angular.module('phonecatApp', ['infinite-scroll']); // 创建module,这里要注入infinite-scroll插件之后才可以使用其方法
phonecatApp.controller('PhoneListCtrl', function ($scope, $http) {
$scope.scroll_status=false;
$scope.loadMore =function () {
$scope.scroll_status=true; //滚动到底部,正在加载数据,禁止多次执行
console.log('到底部了');
}
});
infinite-scroll //box容器里面的内容滚动到底部的时候会执行loadMore()的函数
infinite-scroll-disabled //默认为false,作用是防止滚动到底部的瞬间可能会造成多次执行loadMore()的时候,值为true时就停止了infinite-scroll的回调,也就是不执行loadMore()了
infinite-scroll-distance //值默认为0时,效果就是内容一定要滚动到底部的时候才会触发函数,如果值越大,会感觉到稍微滚动一点点也会触发到infinite-scroll回调执行loadMore()