1. 程式人生 > >Angular 基礎

Angular 基礎

orm lur service ont 標記 三層 utf-8 區別 nec

安裝

1.官網http://angularjs.org/下載安裝

2.開源庫http://www.bootcdn.cn/下載安裝

Angular除了提供一些需要最新瀏覽器支持的功能外,同時提供以下標準功能:

  • 依賴註入
  • 模板
  • 路由(@angular/router)
  • AJAX(@angular/http)
  • 表單(@angular/forms)
  • 組件化CSS封裝
  • XSS保護
  • 單元測試工具

功能豐富的好處就是你不需要額外費精力去挑選第三方的類庫,然而,這也同樣讓你沒得選擇,即使你並不需要這些功能(最新發布的Angular4貌似已經意識到了這個問題)

MVC

MVC即“模型 - 視圖 - 控制器”的簡稱,一種設計模式,MVC的從邏輯上將代碼清晰地分割為三層,這樣可以對每個部分進行獨立開發、測試和維護。

  • 模型/Model - 服務層(service)負責維護數據

  • 視圖/View - 展示層(diretive)負責將數據展現給用戶

  • 控制器/Controller - 控制層(control)負責控制Model和View之間的交互

應用場景

技術分享

開發環境 <script src="angular.js"></script>

angualr應用創建基本步驟
 1   <!DOCTYPE html>
 2     <html lang="en" ng-app="demo">
 3   <head>
 4     <meta charset
="UTF-8"> 5     <title>demo</title> 6       <link rel="stylesheet" href="bootstrap.css"> 7 8     //link標記允許當前文檔和外部文檔之間建立連接,但是只能在head標簽裏面用 9         <script src="angular.js"></script> 10   </head> 11   <body> 12     {{1+1}} {{msg}} 13     <div id="box" ng-controller
="oneCtrl"> 14     {{1+1}} {{msg}} 15 </div> 16     <script> 17         (function(){ 18             angular.module("demo",[]) 19              demo.controller("oneCtrl",function($scope){ 20 21              //學習中一般這樣用 當代碼上線壓縮後 這段代碼會有問題 22 23             demo.controller("myctrl"["$scope","$http"],function (scope,http) { 24             // 開發中要用的表達式 25 26 27              $scope.msg = "hello angular!" 28    }) 29 })() 30 </script>

從其他博客整理來的知識點

1.ng-app,ng-app="",ng-app="demo"三者的區別

答:ng-app有一個默認的模塊。如果有多個ng-app,默認是加載第一個,而且只加載第一個。ng-app=“自定義的模塊” 是一個使用了自定義的模塊,該自定義的模塊繼承了那個初始的默認的模塊,可以調用初始的默認的模塊的方法第二者是第三者的特例。

2.為什麽沒有ng-app,也可以啟動angular?

答:如果在當前的頁面中包含有ng-app這個指令,angular會自動啟動,如果不想在當前的頁面中顯示標識ng-app,我們可以代碼的方式手動啟動,即通過angular.bootstrap(document,["demo"])手動啟動,等價於ng-app="demo";

3.angular.bootstrap(document.getElementById("box"),["demo"])的作用?

答:angular.bootstrap(啟動位置,數組),啟動位置:表示管理範圍,數組:表示把數組中的當成啟動模塊

控制器之間的繼承

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>demo</title>
 6     <link rel="stylesheet" href="bootstrap.css">
 7     <script src="angular.js"></script>
 8 </head>
 9 <body>
10     {{1+1}} {{msg}}
11     <div id="box" ng-controller="oneCtrl">
12         {{1+1}} {{msg}}
13     </div>
14     <script>
15         (function(){
16             angular.module("demo",[])
17                 .controller("oneCtrl",function($scope){
18                     $scope.msg = "hello angular!"
19                 })
20             angular.bootstrap(document,["demo"]);        
21             angular.bootstrap(document.getElementById("box"),["demo"]); 
22         })()
23     </script>
24 </body>
25 </html>
bootstrap插件使用官網上   http://getbootstrap.com查閱使用
以後仔細學過再來做筆記

Angular控制器

技術分享

控制angular應用程序的數據。

控制器是JavaScript對象,構造函數

Angular模塊

模塊對應執行應用的HTML元素

模塊可在angular 應用中添加控制器,指令,服務等。

Angular scope(作用域)

作用域是在應用在HTNL(視圖)和JS(控制器)之間

當angular創建控制器時可以將$scope對象當做參數傳遞

scope是一個對象,有可用方法和屬性

簡單的理解:$scope 局部作用域

$rootscope 全局作用域

技術分享技術分享

Angular scope 事件

ng-click/dblclick 點擊/雙擊

ng-mouseover/out

ng-keydown/up

ng-focus/blur 獲取焦點

ng-submit

Angular 指令

指令 是擴展HTNL 為內置的指令來為應用添加功能 帶有前綴 ng-

ng-init 初始化應用程序數據

ng-model 綁定到應用程序(比如輸入的域的值)

ng-repeat 對於集合中(數組中)的每個項 克隆一次HTML元素( 指令用於循環輸出指定次數的 HTML 元素)

 1 <!doctype html>
 2 <html lang="en" ng-app="zidingyi">
 3 <head>
 4     <meta charset="utf-8">
 5     <title>repeat</title>
 6     <meta name="keywords" content="">
 7     <meta name="description" content="">
 8    <script src="angular.min.js"></script>
 9 </head>
10 <body>
11     <ul ng-controller="myctrl">
12         <li ng-repeat="persen in data">
13                 <!-- 循環(for in 循環) -->
14             <span>年齡:{{persen.name}}</span>
15             <span>年齡:{{persen.age}}</span>
16             <span>年齡:{{persen.score}}</span>
17         </li>
18     </ul>
19     <script>
20         var app=angular.module("zidingyi",[])
21         app.controller("myctrl",function ($scope) {
22             $scope.data=[
23                 {"name":"張三","age":22,"score":98},
24                 {"name":"李四","age":23,"score":70},
25                 {"name":"王五","age":28,"score":90},
26                 {"name":"趙六","age":31,"score":100}
27             ];
28         })
29     </script>
30 </body>
31 </html>

運行結果

技術分享

 

Angular 基礎