javascript
【AngularJS】—— 2 初识AngularJs(续)
前一篇了解了AngularJS的一些簡(jiǎn)單的使用,這里繼續(xù)跟著w3c學(xué)習(xí)一下剩下的內(nèi)容。
本篇根據(jù)w3cschool.cc繼續(xù)學(xué)習(xí)AngularJS剩余的內(nèi)容,包括:
1 事件
2 模塊
3 表單
4 數(shù)據(jù)驗(yàn)證
5 bootstrap CSS風(fēng)格
6 include包含其他頁(yè)面
7 應(yīng)用程序
8 參考手冊(cè)
首先看一下html的事件
關(guān)于html的事件,文中給出了三個(gè)例子,點(diǎn)擊、隱藏、顯示。使用方法基本相同:
先看一下點(diǎn)擊的例子,點(diǎn)擊按鈕后,會(huì)觸發(fā)ng-click內(nèi)的方法,進(jìn)行累計(jì)加一:
<div ng-app="" ng-controller="myController"> <button ng-click="count = count + 1">點(diǎn)我!</button> <p>{{ count }}</p> </div>對(duì)于ng-hide和ng-show原理相同,都是指定一個(gè)bool值,true或false。
初始的時(shí)候myVar的值為false,因此并不隱藏,每次點(diǎn)擊myVar都會(huì)改變?yōu)橄喾吹闹?#xff0c;達(dá)到現(xiàn)實(shí)隱藏的效果。
<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-show使用方法也相同
<div ng-app="" ng-controller="personController"><button ng-click="toggle()">隱藏/顯示</button><p ng-show="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 = true;$scope.toggle = function() {$scope.myVar = !$scope.myVar;}; } </script>?
關(guān)于AngularJS的模塊
模塊定義了用戶(hù)的應(yīng)用,所有的控制器屬于一個(gè)模塊。之前使用的ng-app就是模塊的定義。
例如下面的代碼,定義了一個(gè)應(yīng)用程序的模塊myApp,并定義了一個(gè)控制器myCtrl:
<body><div ng-app="myApp" ng-controller="myCtrl"> {{ firstName + " " + lastName }} </div><script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script><script src="myApp.js"></script> <script src="myCtrl.js"></script></body>對(duì)于控制器,也可以通過(guò)模塊來(lái)定義聲明:
<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>不過(guò)要提前加載angularjs的腳本,這樣再script中 angular.module才可以使用。或者在這句話(huà)的前面加載js。
?
關(guān)于AngularJS表單
表單是web中重要的組成部分,如下面樣例所示,可以很方便的獲取到form中的數(shù)據(jù)
<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>?
關(guān)于驗(yàn)證
AngularJS提供了很多驗(yàn)證機(jī)制,例如郵箱等。
<!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>可以通過(guò).$dirty ? .$invalid來(lái)驗(yàn)證。
?
添加bootstrap樣式
可以首先加載bootstrap css文件
<link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css">樣例代碼參考:
<!DOCTYPE html> <html ang-app=""> <head> <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.2.0/css/bootstrap.min.css"> </head><body ng-controller="userController"> <div class="container"><h3>Users</h3><table class="table table-striped"><thead><tr><th>Edit</th><th>First Name</th><th>Last Name</th></tr></thead><tbody><tr ng-repeat="user in users"><td><button class="btn" ng-click="editUser(user.id)"><span class="glyphicon glyphicon-pencil"></span> Edit</button></td><td>{{ user.fName }}</td><td>{{ user.lName }}</td></tr></tbody> </table><hr> <button class="btn btn-success" ng-click="editUser('new')"><span class="glyphicon glyphicon-user"></span> Create New User </button> <hr><h3 ng-show="edit">Create New User:</h3> <h3 ng-hide="edit">Edit User:</h3><form class="form-horizontal"> <div class="form-group"><label class="col-sm-2 control-label">First Name:</label><div class="col-sm-10"><input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name"></div> </div> <div class="form-group"><label class="col-sm-2 control-label">Last Name:</label><div class="col-sm-10"><input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name"></div> </div> <div class="form-group"><label class="col-sm-2 control-label">Password:</label><div class="col-sm-10"><input type="password" ng-model="passw1" placeholder="Password"></div> </div> <div class="form-group"><label class="col-sm-2 control-label">Repeat:</label><div class="col-sm-10"><input type="password" ng-model="passw2" placeholder="Repeat Password"></div> </div> </form><hr> <button class="btn btn-success" ng-disabled="error || incomplete"><span class="glyphicon glyphicon-save"></span> Save Changes </button> </div><script src = "http://apps.bdimg.com/libs/angular.js/1.2.15/angular.min.js"></script> <script src = "myUsers.js"></script> </body> </html> View Code?
關(guān)于include包含其他html
可以通過(guò)ng-include來(lái)包含其他的web頁(yè)面:
<body> <div class="container"><div ng-include="'myUsers_List.htm'"></div><div ng-include="'myUsers_Form.htm'"></div> </div> </body>?
關(guān)于應(yīng)用程序
創(chuàng)建AngularJS應(yīng)用程序
<div ng-app="myTodoApp" ng-controller="myTodoCtrl"><h2>我的筆記</h2><p><textarea ng-model="message" cols="40" rows="10"></textarea></p><p> <button ng-click="save()">保存</button> <button ng-click="clear()">清除</button> </p><p>剩下的字符數(shù):<span ng-bind="left()"></span></p></div><script src="myTodoApp.js"></script> <script src="myTodoCtrl.js"></script>?
最后是Angular的指定 過(guò)濾器參考
ng_app 定義應(yīng)用程序
ng_bind 綁定數(shù)據(jù)
ng_click 定義元素單擊行為
ng_controller 定義控制器對(duì)象
ng_disabled 定義html標(biāo)簽可用
ng_init 初始化數(shù)據(jù)
ng_model 綁定應(yīng)用程序數(shù)據(jù)
ng_repeat 實(shí)現(xiàn)循環(huán)
ng_show 顯示html標(biāo)簽
?
currency 轉(zhuǎn)換成貨幣
filter 從數(shù)組中選擇一個(gè)子集
lowercase 格式化字符串為小寫(xiě)
uppercase 格式化字符串為大寫(xiě)
orderBy 排序
總結(jié)
以上是生活随笔為你收集整理的【AngularJS】—— 2 初识AngularJs(续)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信机器人开发
- 下一篇: JavaScript 语言基础知识点总结