AngularJS 表达式 |
AngularJS 表达式写在双大括号内:{{ expression }}。 AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。 AngularJS 将在表达式书写的位置"输出"数据。 |
$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据 |
<div ng-app="" ng-controller="customersController"> <ul> <li ng-repeat="x in names"> {{ x.Name + ', ' + x.Country }} </li> </ul> </div> <script> function customersController($scope,$http) { $http.get("http://www.w3cschool.cc/try/angularjs/data/Customers_JSON.php") .success(function(response) {$scope.names = response;}); } </script> |
AngularJS 指令 AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。 | |
ng-app | 指令定义一个 AngularJS 应用程序 |
<div ng-app=""> | |
ng-model | 指令把元素值(比如输入域的值)绑定到应用程序 |
<p>姓名:<input type="text" ng-model="name"></p> | |
ng-bind | 指令把应用程序数据绑定到 HTML 视图 |
<p ng-bind="name"></p> | |
ng-init | 指令初始化 AngularJS 应用程序变量 |
<div ng-app="" ng-init="firstName='John'"> | |
ng-repeat | 指令会重复一个 HTML 元素 |
<div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <p>使用 ng-repeat 来循环数组</p> <ul> <li ng-repeat="x in names"> {{ x }} </li> </ul> <div> | |
ng-controller | 指令定义了应用程序控制器,控制器的 $scope 是控制器所指向的应用程序 HTML 元素 |
<div ng-app="" ng-controller="personController"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{fullName()}} </div> <script> function personController($scope) { $scope.person = { firstName: "John", lastName: "Doe", }; $scope.fullName = function() { var x; x = $scope.person; return x.firstName + " " + x.lastName; }; } </script> | |
ng-disabled | 指令直接绑定应用程序数据到 HTML 的 disabled 属性 |
<div ng-app=""> <p> <button ng-disabled="mySwitch">点我!</button> </p> <p> <input type="checkbox" ng-model="mySwitch">按钮 </p> </div> | |
ng-show | 指令隐藏或显示一个 HTML 元素 |
<div ng-app=""> <p ng-show="true">我是可见的。</p> <p ng-show="false">我是不可见的。</p> </div> | |
ng-click | 指令定义了一个 AngularJS 单击事件 |
<div ng-app="" ng-controller="myController"> <button ng-click="count = count + 1">点我!</button> <p>{{ count }}</p> </div> | |
ng-hide | 指令用于设置应用的一部分 不可见 |
<div ng-app=""> <p ng-show="true">我是可见的。</p> <p ng-show="false">我是不可见的。</p> </div> | |
ng-hide | 指令用于设置应用的一部分 不可见 |
<div ng-app="" ng-controller="personController"> <button ng-click="toggle()">隐藏/显示</button> <p ng-hide="myVar"> 名: <input type="text" ng-model="person.firstName"><br> 姓: <input type="text" ng-model="person.lastName"><br> <br> 姓名: {{person.firstName + " " + person.lastName}} </p> </div> <script> function personController($scope) { $scope.person = { firstName: "John", lastName: "Doe" }; $scope.myVar = false; $scope.toggle = function() { $scope.myVar = !$scope.myVar; }; } </script> | |
ng-include | 指令来包含 HTML 内容 |
<body> <div class="container"> <div ng-include="'myUsers_List.htm'"></div> <div ng-include="'myUsers_Form.htm'"></div> </div> </body> |
AngularJS 过滤器 AngularJS 过滤器可用于转换数据: | |
currency | 格式化数字为货币格式。 |
<div ng-app="" ng-controller="costController"> 数量:<input type="number" ng-model="quantity"> 价格:<input type="number" ng-model="price"> <p>总价 = {{ (quantity * price) | currency }}</p> </div> | |
filter | 从数组项中选择一个子集。 |
<div ng-app="" ng-controller="namesController"> <p>输入过滤:</p> <p><input type="text" ng-model="name"></p> <ul> <li ng-repeat="x in names | filter:name | orderBy:'country'"> {{ (x.name | uppercase) + ', ' + x.country }} </li> </ul> </div> | |
lowercase | 格式化字符串为小写。 |
<div ng-app="" ng-controller="personController""> <p>姓名为 {{ person.lastName | lowercase }}</p> </div> | |
orderBy | 根据某个表达式排列数组。 |
<div ng-app="" ng-controller="namesController"> <p>循环对象:</p> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> <div> | |
uppercase | 格式化字符串为大写。 |
<div ng-app="" ng-controller="personController"> <p>姓名为 {{ person.lastName | uppercase }}</p> </div> |
AngularJS 模块 |
<!DOCTYPE html> <html> <head> <script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script> </head> <body> <div ng-app="myApp" ng-controller="myCtrl"> {{ firstName + " " + lastName }} </div> <script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; }); </script> </body> </html> |
AngularJS 表单实例 |
<div ng-app="" ng-controller="formController"> <form novalidate> First Name:<br> <input type="text" ng-model="user.firstName"><br> Last Name:<br> <input type="text" ng-model="user.lastName"> <br><br> <button ng-click="reset()">RESET</button> </form> <p>form = {{user}}</p> <p>master = {{master}}</p> </div> <script> function formController ($scope) { $scope.master = {firstName: "John", lastName: "Doe"}; $scope.reset = function() { $scope.user = angular.copy($scope.master); }; $scope.reset(); }; </script> |
AngularJS 输入验证 |
<!DOCTYPE html> <html> <body> <h2>Validation Example</h2> <form ng-app="" ng-controller="validateCtrl" name="myForm" novalidate> <p>Username:<br> <input type="text" name="user" ng-model="user" required> <span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid"> <span ng-show="myForm.user.$error.required">Username is required.</span> </span> </p> <p>Email:<br> <input type="email" name="email" ng-model="email" required> <span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid"> <span ng-show="myForm.email.$error.required">Email is required.</span> <span ng-show="myForm.email.$error.email">Invalid email address.</span> </span> </p> <p> <input type="submit" ng-disabled="myForm.user.$dirty && myForm.user.$invalid || myForm.email.$dirty && myForm.email.$invalid"> </p> </form> <script src="//apps.bdimg.com/libs/angular.js/1.2.15/angular.min.js"></script> <script> function validateCtrl($scope) { $scope.user = 'John Doe'; $scope.email = 'john.doe@gmail.com'; } </script> </body> </html> |