AngularJS(三)

AngularJS表格
ng-repeat

显示序号 ($index)
表格显示序号可以在 <td> 中添加 $index

 1 <style>
 2 table,th,td{
 3     border: 1px solid grey;
 4     border-collapse: collapse;
 5     padding: 5px;
 6 }
 7 table tr:nth-child(odd){
 8     background: #f1f1f1;
 9 }
10 table tr:nth-child(even){
11     background: #ffffff;
12 }
13 </style>
14 </head>
15 <body>
16 
17 
18 <!-- 输出表格,并改变css样式
19 table>tr>td
20 -->
21 <div ng-app='myApp' ng-controller='myCtrl'>
22     <table>
23         <tr ng-repeat="x in names | orderBy:'City'">
24             <!-- 表格中显示序号 -->
25             <td>{{$index + 1}}</td>
26             <td>{{x.Name}}</td>
27             <td>{{x.City | uppercase}}</td>
28         </tr>
29     </table>
30 </div>
31 
32  
33 
34 <!-- 引入AngularJS -->
35 <script src="angular.min.js"></script>
36 <!--<script src="personController.js"></script>-->
37 <script>
38 //实例化AngularJS应用程序对象
39 var app = angular.module('myApp', []);
40 //创建控制器
41 app.controller('myCtrl', function ($scope,$http){
42     $http.get('Customers_JSON.php').success(function (response){
43         $scope.names = response.records;
44     });
45 });
46 </script>

 

AngularJS HTML DOM
AngularJS提供一些指令:在HTML DOM元素的属性上绑定应用数据
ng-disabled 指令属性值为true或false,直接绑定程序数据到HTML的disabled属性

 1 <div ng-app="" ng-init="mySwitch=true">
 2 
 3 <p>
 4     <button ng-disabled="mySwitch">点我!</button>
 5 </p>
 6 
 7 <p>
 8     <input type="checkbox" ng-model="mySwitch">按钮
 9 </p>
10 
11 <p>
12 {{ mySwitch }}
13 </p>
14 
15 </div>

 

/******************/

1 <div ng-app="" ng-init="mySwitch='true'">
2     <button ng-disabled="mySwitch">按钮</button>
3     <input type="checkbox" ng-model="mySwitch" />多选框
4     <h1>{{mySwitch}}</h1>
5 </div>


ng-show="true"
ng-show="false
ng-hide="true"
ng-hide="false"

AngularJS 事件
AngularJS 有自己的HTML事件指令
ng-click 指令
ng-hide 指令
ng-show 指令

1 <div ng-app="" ng-init="count=1">
2     <p ng-click="count=count+1">点我</p>
3     {{count}}
4 </div>

 

/****************************************/

 1 <!-- 制作button点击时的toggle效果
 2 -->
 3 <div ng-app="myApp" ng-controller="myCtrl">
 4     <button ng-click="toggle()">显示/隐藏p</button>
 5     <p ng-hide="btnCtrl">ppppppppppppppppppppppppppp</p>
 6 </div>
 7 
 8 <!-- 引入AngularJS -->
 9 <script src="angular.min.js"></script>
10 <script>
11 //实例化AngularJS应用程序对象
12 var app = angular.module('myApp', []);
13 //创建控制器
14 app.controller('myCtrl', function ($scope) {
15     $scope.btnCtrl = false;
16     $scope.toggle = function () {
17         $scope.btnCtrl = !$scope.btnCtrl;
18     };
19 });
20 </script>

 

AngularJS 模块
模块定义了一个应用程序。
模块是应用程序中不同部分的容器。
模块是应用控制器的容器。
控制器通常属于一个模块。

创建模块
angular.module(应用程序名, [])
[]代表不依赖其他模块

添加控制器
//app是应用程序对象,app是一个模块
//$scope是全局对象,后面是各种服务对象
app.controller(控制器名, function ($scope,$location,$http,$timeout,$interval...){});

添加指令

 1 <!-- 添加指令
 2 -->
 3 <div ng-app="myApp" hello-directive></div>
 4 
 5 <!-- 引入AngularJS -->
 6 <script src="angular.min.js"></script>
 7 <script>
 8 //实例化AngularJS应用程序对象
 9 var app = angular.module('myApp', []);
10 
11 app.directive('helloDirective', function () {
12     return {
13         template: '我在指令构造器中创建'
14     };
15 });
16 </script>

 

JavaScript 中应避免使用全局函数,以为他们很容易被其他脚本文件覆盖
AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。

AngularJS 表单
AngularJS 表单是输入控件的集合。

HTML 控件
input 元素
select 元素
button 元素
textarea 元素

 1 <div ng-app="myApp" ng-controller="myCtrl">
 2     <form novalidate>
 3         First Name: <br/><input type="text" ng-model="user.firstName"/><br/>
 4         Last Name: <br/><input type="text" ng-model="user.lastName"/><br/>
 5         <button ng-click="reset()">RESET</button>
 6     </form>
 7     <p>form={{user}}</p>
 8     <p>master={{master}}</p>
 9 </div>
10 
11 
12 <!-- 引入AngularJS -->
13 <script src="angular.min.js"></script>
14 <script>
15 //实例化AngularJS应用程序对象
16 var app = angular.module('myApp', []);
17 //创建控制器
18 app.controller('myCtrl', function ($scope){
19     //user是不固定的,master是固定的
20     $scope.master = {firstName:'John',lastName:'Doe'};
21     $scope.user = angular.copy($scope.master);
22     $scope.reset = function (){
23         $scope.user = angular.copy($scope.master);
24     };
25 
26 });
27 </script>

 

AngularJS 输入验证
HTML 表单属性 novalidate 用于禁用浏览器默认的验证。

ng-model 指令用于绑定输入元素到模型中

$dirty 表单有填写记录
$valid 字段内容合法的
$invalid 字段内容是非法的
$pristine 表单没有填写记录

 1 <!--$dirty    表单有填写记录
 2     $valid    字段内容合法的
 3     $invalid    字段内容是非法的
 4     $pristine    表单没有填写记录
 5  -->
 6 <form novalidate name="myForm" ng-app="myApp" ng-controller="formCtrl">
 7     <h1>验证实例</h1>
 8     用户名:<br/><input type="text" ng-model="user" name="user" required/>
 9     <!-- 符合条件的时候显示 -->
10     <span style="color:red;" ng-show="myForm.user.$error.required">用户名是必须的。</span>
11 
12     <br/><br/>
13     邮箱:<br/><input type="email" ng-model="email" name="email" required/>
14     <!-- 符合条件的时候显示 -->
15     <span style="color: red;" ng-show="myForm.email.$error.required">邮箱是必须的</span>
16     <span style="color: red;" ng-show="myForm.email.$error.email">邮箱不合法</span>
17 
18     <br/><br/>
19     <button ng-disabled="myForm.user.$error.required || myForm.email.$error.required || myForm.email.$error.email">提交</button>
20 </form>
21 
22 
23 <!-- 引入AngularJS -->
24 <script src="angular.min.js"></script>
25 <script>
26     //实例化AngularJS应用程序对象
27     var app = angular.module('myApp', []);
28     //创建控制器
29     app.controller('formCtrl', function ($scope){
30         $scope.user = 'John Doe';
31         $scope.email = '[email protected]';
32     });
33 </script>

 

你可能感兴趣的:(AngularJS(三))