angular入门
目錄
一、angular入門
1.雙邊數據綁定
2.模塊
3.Controller
4.表達式(Expression)
5.內置服務
二、常用內置指令
1.ng-app指令
2.ng-repeat 指令
3.ng-class指令
4.ng-show/ng-hide 指令
5.ng-link/ng-src 指令
一、angular入門
1.雙邊數據綁定
<!-- 所有需要angular管理的代碼必須包裹在一個ng-app指令的元素中 --> <div ng-app> <h1>使用angular實現雙邊數據綁定</h1> <p><input type="text" placeholder="請輸入你的姓名" ng-model="user.name"></p> <p>hello<strong>{{user.name}}</strong></p> </div> <script src="js/angular.js"></script>運行流程:
1.當網頁加載完畢,AngularJS 自動開始執行 2.HTML 頁面中 ng-xxx 的屬性稱之為指令(Directive) 3.ng-app 指令告訴 AngularJS,<div> 元素是AngularJS 應用程序管理的邊界 4.ng-model 指令把文本框的值綁定到變量 name 上 5.{{ name }} 表達式就是把應用程序變量 name 綁定到某個段落的 innerHTML2.模塊
-
劃分應用程序結構
-
我們可以通過angular.module創建一個模塊
-
angular.module方法傳遞兩個參數才是創建模塊,一個參數是獲取模塊
3.Controller
-
調度邏輯的集合
-
控制器的三種主要職責:
-
為應用中的模型設置初始狀態
-
通過$scope對象把數據模型或函數行為暴露給視圖
-
監視模型的變化,做出相應的動作
-
$watch演示:
<body ng-app="myModule" ng-controller="loginController"> 用戶名:<input type="text" ng-model="user.username"><br/> 密碼:<input type="password" ng-model="user.password"><br/> 登陸:<input type="button" ?value="登陸" ng-click="login()"><br/> ? <div>{{message}}</div> <script src="js/angular.js"></script> <script>// 創建一個模塊var myModule=angular.module("myModule",[]);// 為這個模塊創建一個控制器myModule.controller("loginController",['$scope',function ($scope) {// 數據$scope.user={username:"",password:""}; ?// 行為數據$scope.login=function () {// 因為數據的變化時雙向的同步,所以界面上的值變化會同步到$scope.user上console.log($scope.user);} ?// 請輸入用戶名 輸入格式不合法$scope.message = '請輸入用戶名'; ?// 官方的API中提供了一個$scope.$watch方法,$scope.$watch('user.username', function(now, old) {// 當user.username發生變化時觸發這個函數if (now) {if (now.length < 7) {$scope.message = '輸入格式不合法';} else {$scope.message = '';}} else {$scope.message = '請輸入用戶名';}});}]) </script>4.表達式(Expression)
-
作用:
? 使用?表達式?把數據綁定到 HTML。
-
語法:
? 表達式寫在雙大括號內:{{ expression }}。
-
比較:
? 表達式作用類似于ng-bind指令建議更多的使用指令
-
AngularJS表達式很像JavaScript表達式
-
它們可以包含文字、運算符和變量
-
如 {{ 5 + 5 }} 或 {{ firstName + ‘-’ + lastName }}
5.內置服務
-
我們的數據一般都是從后端獲取的,那么如何獲取數據呢?我們一般使用內置服務$http 來實現。
-
下面模擬從后端獲取數據
data.json
[{"name":"張三","shuxue":100,"yuwen":93},{"name":"李四","shuxue":88,"yuwen":87},{"name":"王五","shuxue":77,"yuwen":56},{"name":"趙六","shuxue":67,"yuwen":86} ]二、常用內置指令
1.ng-app指令
-
ng-app指令用來標明一個AngularJS應用程序
-
標記在一個AngularJS的作用范圍的根對象上
-
系統執行時會自動的執行根對象范圍內的其他指令
-
可以在同一個頁面創建多個ng-app節點(不推薦)
-
創建多個ng-app節點時,默認只能執行第一個,后面的需要自己手動引導 augular.bootstrap()
-
標記的范圍盡可能小,可以提高性能
2.ng-repeat 指令
-
ng-repeat指令用來編譯一個數組重復創建當前元素
3.ng-class指令
-
ng-class指令可以設置一個鍵值對,用于決定是否添加一個特定的類名,鍵為class名,值為bool類型表示是否添加該類名
遍歷名字且查詢變紅
<style>.red{color:red;}.green{color:green;} </style> ? <body ng-app="myModule"> <!-- 將輸入框輸入的元素綁定到ng-class中,實現查詢以startName開頭的名字的功能 --> <input type="text" ng-model="startName"> <ul ng-controller="myController"><!-- 若要遍歷的元素有重復,需要加上track by $index,保證唯一 --><li ng-repeat="name in names track by $index" ng-class="{red:name.startsWith(startName)}">{{name}}</li> </ul> ? <script src="js/angular.js"></script> <script> ?var module=angular.module("myModule",[]); ?module.controller("myController",['$scope',function ($scope) {$scope.names=['張三','李四','王五','趙六','張三'];}]) </script>4.ng-show/ng-hide 指令
-
ng-show/ng-hide指令會根據屬性值去確定是否展示當前元素,例如ng-show=false則不會展示該元素
5.ng-link/ng-src 指令
-
ng-link/ng-src指令用于解決當鏈接類型的數據綁定時造成的加載BUG
總結
- 上一篇: dubbo配置(一)
- 下一篇: 在IntelliJ IDEA中使用git