AngularJS入門

1. AngularJS簡介

AngularJS是一個JavaScript框架,用js編寫的庫

<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
<!-- 放在<body> 元素的底部。提高網頁加載速度 -->

1.1. AngularJS 擴展了 HTML

AngularJS 通過 ng-directives擴展了HTML

ng-app 指令定義一個 AngularJS 應用程序。 若不聲明,將直接顯示表達式。

ng-model 指令把元素值(比如輸入域的值)綁定到應用程序。

ng-bind 指令把應用程序數據綁定到 HTML 視圖。一般使用 **{ { ng-model 的值 }}**獲取數據

<div ng-app=""><p>名字 : <input type="text" ng-model="name"></p><h1>Hello {{name}}</h1>    <!-- 常用方式 --><p ng-bind="name"></p>
</div>

當網頁加載完畢,AngularJS 自動開啟。

2. AngularJS表達式

AngularJS 使用 表達式 把數據綁定到 HTML

使用{ { 表達式 }}進行數據的輸出

表達式可以包含字符,操作符,變量

表達式可以寫在HTML中

不支持條件判斷,循環及異常

支持過濾器

<div ng-app=""><p>我的第一個表達式: {{ 5 + 5 }}</p>
</div>

2.1. AngularJS數字

類似于JavaScript的數字

<div ng-app="" ng-init="quantity=1;cost=5">  <!-- ng-init用來初始化數據,不常用 --><p> 總價: {{ quantity * cost }} </p>
</div>

2.2. AngularJS字符串

類似于JavaScript的字符串

<div ng-app="" ng-init="firstName='Tom';lastName='Jack'"><p> 姓名: {{ firstName + " " + lastName }} </p>
</div>

2.3. AngularJS 對象

類似于JavaScript的對象

<div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}"><p> 姓為 {{ person.lastName }} </p>
</div>

2.4. AngularJS 數組

類似于JavaScript的數組

<div ng-app="" ng-init="points=[1,12,9,3,40]"><p> 第三個值為 {{ points[2] }} </p>
</div>

3. AngularJS指令

通過 指令 來擴展HTML。通過內置的指令來為應用添加功能,可以自定義指令。

指令帶有前綴 ng- ng-app指令用來初始化一個 AngularJS應用程序

3.1. 數據綁定

表達式**{{ firstName }}** 通過 ng-model=“firstName” 進行同步。

<div ng-app="" ng-init="firstName='Tom'"><input type="text" ng-model="firstName"><!-- 默認為Tom,輸入值時 下方的表達式值會改變 -->{ { firstName }}
</div>

3.2. 重復HTML元素

ng-repeat指令:重復一個HTML元素,用作循環

<div ng-app="" ng-init="names=['Tom','Jack','Hege']"><ul><li ng-repeat="i in names"> {{ i }} </li></ul>
</div>

用在一個對象數組上

<div ng-app="" ng-init="names=[ {name:'Jani',country:'Norway'},{name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'}]"><ul><li ng-repeat="i in names"> {{ i.name + "," + i.country }} </li></ul>
</div>

3.3. ng-app指令

在網頁加載完畢時自動初始化一個 AngularJS應用程序

通過一個值**(ng-app=“myCode”)**連接到代碼模塊

3.4. ng-init指令

為 AngularJS 應用程序定義了 初始值。一般不使用

3.5. ng-model 指令

/// ng-model="name" 聲明一個name變量/// $scope.name 使用name變量
  1. 綁定應用程序數據到 HTML 控制器(input, select, textarea)的值
  2. 為應用程序數據提供類型驗證(number、email、required)
  3. 為應用程序數據提供狀態(invalid、dirty、touched、error)
  4. 為 HTML 元素提供 CSS 類
  5. 綁定 HTML 元素到 HTML 表單
  6. 將輸入域的值($scope)與 AngularJS 創建的變量綁定
<div ng-app="myApp" ng-controller="myCtrl">
名字: <input ng-model="name">
</div><script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.name = "John Doe"; }); </script>

雙向綁定,在修改輸入域的值時, AngularJS 屬性的值也將修改

<div ng-app="myApp" ng-controller="myCtrl"><input ng-model="name"/>      <!-- 默認顯示Tom --><p> 你輸入了: {{ name }} </p>  <!-- 修改輸入框的值,此處名字也會相應修改 -->
</div><script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope){ $scope.name = 'Tom' }) </script>

驗證用戶輸入 ng-show

<form ng-app="" name="myForm">Email: <input type="email" name="myAddr" ng-model="text"><span ng-show="myForm.myAddr.$error.email">不是一個合法的郵箱地址</span>
</form>

為應用數據提供狀態值 (invalid, dirty, touched, error)

<form ng-app="" name="myForm" ng-init="myText = 'test@lwclick.com'">Email:<input type="email" name="myAddr" ng-model="myText" required><h1>狀態</h1>{ { myForm.myAddr.$valid }}         如果輸入的值是合法的則為 true{ { myForm.myAddr.$dirty }}         如果值改變則為 true{{ myForm.myAddr.$touched }}       如果通過觸屏點擊則為 true{{ myForm.myAddr.$error.email }}   如果輸入的Email的值非法則為 true
</form>

CSS類,基于它們的狀態為 HTML 元素提供了 CSS 類

<!-- 輸入框有required屬性,必須輸入數據,若不輸入則為非法的,觸發input.ng-invalid -->
<style> input.ng-invalid { background-color: lightblue; } 
</style><form ng-app="" name="myForm">輸入你的名字: <input name="myAddress" ng-model="text" required>
</form>

ng-empty 為空的時候
ng-not-empty 不為空的時候
ng-touched 控件已失去焦點
ng-untouched 控件未失去焦點
ng-valid 驗證通過
ng-invalid 驗證失敗
ng-dirty 值改變的時候
ng-pending 任何為滿足 $asyncValidators 的情況
ng-pristine 控件為初始狀態

3.6. ng-repeat指令

對于集合中(數組中)的每個項會 克隆一次 HTML 元素。用于循環輸出

3.7. 創建自定義指令

聲明:使用 .directive 函數來添加自定義的指令,聲明時使用 駝峰命名法

<body ng-app="myApp"><!-- 使用 --><lw-click></lw-click><!-- 聲明 --><script> var app = angular.module("myApp", []); app.directive("lwClick", function(){ return { template: "<h1>自定義指令~</h1>" } }); </script>
</body>

調用:調用時使用 – 分割

元素名: <lw-click> </lw-click>

屬性: <div lw-click> </div>

類名: <div class="lw-click"> </div>

必須設置 restrict 的值為 “C” 才能通過類名來調用指令。

<script> app.directive("lwClick", function(){ return { restrict: "C", template: "<h1>自定義指令~</h1>" } }); 
</script>

注釋:<!-- directive: lw-click -->

添加 replace 屬性,使注釋可見

設置 restrict 的值為 “M”

<script> app.directive("lwClick", function(){ return { restrict: "M", replace: true, template: "<h1>自定義指令~</h1>" } }); 
</script>

4. AngularJS Scope(作用域)

Scope(作用域) 是應用在 HTML (視圖) 和 JavaScript (控制器)之間的紐帶。

4.1. 使用Scope

在AngularJS創建控制器時,可以將$scope對象當作一個參數傳遞

<div ng-app="myApp" ng-controller="myCtrl"><h1> { { carName }} </h1>                         <!-- 獲取變量的值 -->
</div><script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope){ // scope作為參數傳遞 $scope.carName = "Volvo"; // 聲明一個變量 })
</script>

4.2. Scope概述

AngularJS應用組成如下:

View(視圖),即HTML scope的屬性和方法
Model(模型),當前HTML中可用的數據 scope
Controller(控制器),JavaScript函數,可以添加或修改屬性 scope的屬性和方法

<div ng-app="myApp" ng-controller="myCtrl"><input ng-model="name">       <!-- 數據綁定 --><h2> {{ greeting }} </h2><button ng-click="sayHello()"> 點我 </button>
</div><script> var app = angular.module("myApp", []); app.controller("myCtrl", function($scope){ $scope.name = "lwclick"; // 聲明name // 創建方法,響應點擊事件 $scope.sayHello =  function(){ $scope.greeting = 'hello' + $scope.name + '!'; } }) 
</script>

4.3. Scope作用范圍

根作用域:$rootScope

作用在 ng-app 指令包含的所有HTML元素中
用 $rootScope 定義的值,可以在各個controller中使用

<div ng-app="myApp" ng-controller="myCtrl"><h1>{{ lastName }} 家族成員:</h1> <ul><li

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712481.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Freesia項目目錄結構

目錄結構 前端目錄&#xff1a; &#xff08;目錄結構來自layui-vue-admin&#xff09; src文件下 api&#xff08;前端請求后端服務的路由&#xff09;assert&#xff08;一些內置或必要的資源文件&#xff09;layouts&#xff08;全局框架樣式組件&#xff09;router&…

Unity(第十九部)射線

在Unity中&#xff0c;射線檢測通常用于碰撞檢測&#xff0c;比如&#xff1a;在游戲中&#xff0c;開槍射擊時&#xff0c;需要判斷擊中的物體、子彈擊中的位置&#xff1b;用鼠標來控制物體的移動&#xff1b;用鼠標拾取某個物體。 射線&#xff0c;顧名思義&#xff0c;在數…

【轉載】深度學習筆記——詳解損失函數

原文鏈接: https://blog.csdn.net/weixin_53765658/article/details/136360033 CSDN賬號: Purepisces github賬號: purepisces 希望大家可以Star Machine Learning Blog https://github.com/purepisces/Wenqing-Machine_Learning_Blog 損失函數 根據您使用的神經網絡類型和數…

第四十七回 一丈青單捉王矮虎 宋公明二打祝家莊-強大而靈活的python裝飾器

四面全是埋伏&#xff0c;宋江和眾人一直繞圈跑不出去。正在慌亂之時&#xff0c;石秀及時趕到&#xff0c;教大家碰到白楊樹就轉彎走。走了一段時間&#xff0c;發現圍的人越來越多&#xff0c;原來祝家莊以燈籠指揮號令。花榮一箭射下來紅燈龍&#xff0c;伏兵自己就亂起來了…

Northwestern University-844計算機科學與技術/軟件工程-復試注意事項【考研復習】

本文提到的西北大學是位于密歇根湖泊畔的西北大學。西北大學&#xff08;英語&#xff1a;Northwestern University&#xff0c;簡稱&#xff1a;NU&#xff09;是美國的一所著名私立研究型大學。它由九人于1851年創立&#xff0c;目標是建立一所為西北領地地區的人服務的大學。…

【力扣白嫖日記】550.游戲玩法分析IV

前言 練習sql語句&#xff0c;所有題目來自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免費數據庫練習題。 今日題目&#xff1a; 550.游戲玩法分析IV 表&#xff1a;Activity 列名類型player_idintdevice_idintevent_datedategames_played…

從 iOS 設備恢復數據的 20 個iOS 數據恢復工具

作為 iPhone、iPad 或 iPod 用戶&#xff0c;您可能普遍擔心自己可能會丟失存儲在珍貴 iOS 設備中的所有寶貴數據。數據丟失的原因多種多樣&#xff0c;這里列出了一些常見原因&#xff1a; 1. iOS 軟件更新 2. 恢復出廠設置 3. 越獄 4. 誤操作刪除數據 5. iOS 設備崩潰 …

C++筆記(五)--- 虛函數(virtual)

目錄 虛函數介紹 虛函數、覆蓋和重載區別 虛函數介紹 C的虛函數是多態性的表現 1.構造函數不能為虛函數2.子類繼承時虛函數仍為虛函數3.虛函數類外實現時&#xff0c;不需要加virtual4.有虛函數的類&#xff0c;析構函數一定要寫成虛函數&#xff08;否則可能會造成內存泄漏&…

【代碼隨想錄python筆記整理】第十六課 · 出現頻率最高的字母

前言:本筆記僅僅只是對內容的整理和自行消化,并不是完整內容,如有侵權,聯系立刪。 一、哈希表初步 在之前的學習中,我們使用數組、字符串、鏈表等等,假如需要找到某個節點,則都要從頭開始,逐一比較,直到找到為止。為了能夠直接通過要查找的記錄找到其存儲位置,我們選…

設備像素、css像素、設備獨立像素、dpr、ppi 之間的區別

設備像素、CSS 像素、設備獨立像素 (DIP)、設備像素比 (DPR) 和每英寸像素密度 (PPI) 是與屏幕分辨率和顯示質量相關的概念。它們之間的區別如下&#xff1a; 設備像素&#xff1a;設備像素是物理屏幕上的最小可見單元&#xff0c;用于實際渲染圖像或文本。它表示硬件像素點的數…

、JMETER與它的組件們

os進程取樣器 這個取樣器可以讓jmeter直接調用python寫的測試數據 這樣就可以調用python寫的測試數據給到jmeter進行調用 注意&#xff1a;1建議python返回轉json格式dumps一下&#xff1b;2py文件中需要把結果打印出來&#xff0c;可以不用函數直接編寫 傳到jmeter之后可以用…

你真的了解C語言中的【柔性數組】嗎~

柔性數組 1. 什么是柔性數組2. 柔性數組的特點3. 柔性數組的使用4. 柔性數組的優勢 1. 什么是柔性數組 也許你從來沒有聽說過柔性數組這個概念&#xff0c;但是它確實是存在的。 C99中&#xff0c;結構體中的最后?個元素允許是未知大小的數組&#xff0c;這就叫做柔性數組成員…

MyBatis 學習(五)之 高級映射

目錄 1 association 和 collection 介紹 2 案例分析 3 一對一關聯和一對多關聯 4 參考文檔 1 association 和 collection 介紹 在之前的 SQL 映射文件中提及了 resultMap 元素的 association 和 collection 標簽&#xff0c;這兩個標簽是用來關聯查詢的&#xff0c;它們的屬…

算法--時空復雜度分析以及各個數據量對應的可使用的算法(C++;1s內)

這里寫目錄標題 由數據范圍反推算法時間復雜度以及算法內容分析時間復雜度看循環實例1實例2 固定時間復雜度快排和歸并排序二分高精度算法雙指針算法單鏈表插入刪除操作棧和隊列的操作單調棧和單調隊列KMPTire并查集堆哈希表BFS、DFS圖的深度優先、寬度優先遍歷dijkstra算法樸素…

題目 1037: [編程入門]宏定義的練習

問題描述&#xff1a; 輸入兩個整數&#xff0c;求他們相除的余數。用帶參的宏來實現&#xff0c;編程序。 樣例輸入&#xff1a; 3 2 樣例輸出&#xff1a; 1 代碼分析&#xff1a; 這段代碼實現了輸入兩個整數&#xff0c;然后使用帶參數的宏計算它們相除的余數&…

「MySQL」深入理解MySQL中常用的SQL函數

「MySQL」深入理解MySQL中常用的SQL函數 窗口函數參考文章1. COALESCE 函數2. USING 函數3. LEAD 函數4. interval 函數5. INSTR 函數6. substring_index 函數7. LENGTH 函數和 CHAR_LENGTH 函數 窗口函數參考文章 SQL窗口函數 1. COALESCE 函數 COALESCE 函數的作用是從一…

瑞_Redis_Redis的Java客戶端

文章目錄 1 Redis的Java客戶端1.1 Jedis快速入門1.1.1 入門案例1.1.1.1 項目構建1.1.1.2 引入依賴1.1.1.3 建立連接1.1.1.4 釋放資源1.1.1.5 測試1.1.1.6 完整測試類代碼 1.1.2 Jedis連接池1.1.2.1 連接池工具類1.1.2.2 改造原始代碼 &#x1f64a; 前言&#xff1a;本文章為瑞…

基于單片機的聲光控制節能燈設計

摘 要:在當今社會,節約用電是低碳生活的基本行為之一,但是一些公眾場所電力浪費現象依然存在,特別是長明燈、常亮屏等屢見不鮮,造成了嚴重的電力浪費。針對這種電力浪費現象,該文基于STC89C52單片機設計了一種聲光控制節能燈,利用光敏電阻、光信息及語音信號控制電路收集…

常用sql語句及其優化

文章目錄 介紹常用sql語句1. 數據查詢1.1 SELECT 語句1.2 DISTINCT 關鍵字1.3 WHERE 子句1.4 ORDER BY 子句1.5 LIMIT 關鍵字 2. 數據更新2.1 INSERT INTO 語句2.2 UPDATE 語句2.3 DELETE FROM 語句 3. 數據管理3.1 CREATE TABLE 語句3.2 ALTER TABLE 語句3.3 DROP TABLE 語句 …

藍橋輔導之管道

藍橋輔導之管道 核心思想&#xff1a;二分 二分時間 若t時刻成立 則之后也一定成立將mid時刻時每個閥門的水的流動區間加入對組 合并區間 最終判斷是否覆蓋全管道l1 && r m; #include <iostream>#include <cstring>#include <algorithm>#define…