AngularJs的初步使用

来源:http://www.cnblogs.com/yihec/archive/2016/08/10/5757106.html
-Advertisement-
Play Games

AngularJS[1] 誕生於2009年,由Misko Hevery 等人創建,後為Google所收購。是一款優秀的前端JS框架,已經被用於Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴註入等等。 AngularJs ...


    AngularJS[1]  誕生於2009年,由Misko Hevery 等人創建,後為Google所收購。是一款優秀的前端JS框架,已經被用於Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴註入等等。

AngularJs程式分為3部分:模板,表現層邏輯,數據(model)。

 模板:我們用html,css寫的ui視圖代碼,其中包含AngularJs的指令,表達式,並最終會被AngularJs編譯機制編譯為附加在dom樹上。AngularJs的指令(directive)可以由我們自由擴展。

表現層邏輯:包括應用程式邏輯和行為。用javascript定義作為視圖控制器邏輯。在AngularJs作為MVC框架,在控制器中我們無需添加對於dom級的事件監聽,這些在AngularJs中已經內置了。在ui節點dom事件發生後AngularJs會自動轉到scope上的某個行為(Action)邏輯。

 數據:視圖對象(viewobject)需要被AngularJs Scope(1.0中作為service出現)引用,可以使任何類型的javascript對象,數組,基本類型,對象。並且AngularJs會自動非同步更新模型,即在ui發生改變的時他會自動刷新模型(mode),反之在模型發生改變的時候也會自動刷新ui。在這裡我們不需要定義形如getter,setter的一些列方法。

AngularJS 控制器(Controller)
用於控制 AngularJS 應用

1 // controller的使用
2 var myApp = angular.module('myApp',[]);
3        //這裡第一個參數controller的名字,後面的參數是所要依賴的模塊
4 myApp.controller('GreetingController', ['$scope', function($scope) {
5   $scope.greeting = 'Hola!';
6 }]);

 

下麵是html頁面

 1 <!--ng-app指令定義了應用, ng-controller 定義了控制器。
 2 ng-model 指令把輸入域的值綁定到應用程式變數 greeting 
 3 -->
 4 <html ng-app="myApp">
 5     <head>
 6         <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
 7     </head>
 8     <body ng-controller="GreetingController">
 9         <div ng-model="greeting">
10         Hello {{greeting}}!
11         </div>
12     </body>
13 </html>

 

這是運行結果
這是運行結果

AngularJs指令
通過內置的指令來為應用添加功能。。

下麵的是一些AngularJS的內置指令
這裡寫圖片描述
我這裡主要講怎麼去自定義指令

1 var app = angular.module("myApp", []);
2 app.directive("runoobDirective", function() {
3     return {
4         restrict : "A",
5         template : "<h1>自定義指令!</h1>"
6     };
7 });

restrict 值可以是以下幾種:

E 只限元素名使用
A 只限屬性使用
C 只限類名使用
M 只限註釋使用

restrict 預設值為 EA, 即可以通過元素名和屬性名來調用指令。
下麵是html代碼

 1 <html>
 2     <head>
 3     <meta charset="utf-8">
 4      <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
 5     </head>
 6 <body ng-app="myApp">
 7 <my-directive></my-directive>
 8 <div my-directive></div>
 9 <script>
10     var app = angular.module("myApp", []);
11     app.directive("myDirective", function() {
12         return {
13             restrict : "EA",
14             template : "<h1>hello world!</h1>"
15         };
16     });
17 </script>
18 </html>

 結果大家可以去試下,自定義編寫指令,主要用於重覆的html代碼,比如表單啥編寫一個指令,然後使用起來方便。

 

AngularJs 路由
AngularJS 路由允許我們通過不同的 URL 訪問不同的內容。
使用路由時,需要導入angular-route.js

 1 <html>
 2     <head>
 3         <meta charset="utf-8">
 4         <title></title>
 5     </head>
 6     <body ng-app='routingDemoApp'>
 7 
 8         <h2>AngularJS 路由應用</h2>
 9         <ul>
10             <li><a href="#/">首頁</a></li>
11             <li><a href="#/computers">電腦</a></li>
12             <li><a href="#/printers">印表機</a></li>
13             <li><a href="#/blabla">其他</a></li>
14         </ul>
15 
16         <div ng-view></div>
17         <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>
18         <script src="angular-route.js"></script>
19         <script>
20             angular.module('routingDemoApp',['ngRoute'])
21             .config(['$routeProvider', function($routeProvider){
22                 $routeProvider
23                 .when('/',{template:'這是首頁頁面'})
24                 .when('/computers',{template:'這是電腦分類頁面'})
25                 .when('/printers',{template:'這是印表機頁面'})
26                 .otherwise({redirectTo:'/'});
27             }]);
28         </script>
29 
30 
31     </body>
32 </html>
View Code

 

AngularJS 服務(Service)

1 $http({
2 url:'data.json',
3 method:'GET'
4 }).success(function(data,header,config,status){
5 //響應成功
6 
7 }).error(function(data,header,config,status){
8 //處理響應失敗
9 });

當然我這裡只講了一些最基礎的也是最常用的簡單例子,大家想要瞭解還是要去看下視頻,因為我是屬於後臺開發目前設計到一些AngularJs技術,所以說我這篇主要是給自己幾天使用AngularJs的一些總結,當然也希望大家能夠一起學習交流。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 背景 我個人很喜歡TypeScript也很喜歡Vue,但在兩者共同使用的時候遇到一些問題。 Vue的實例化對象代理了所有實際ViewModel對象,具體可參見官方文檔( http://vuejs.org.cn/guide/instance.html 屬性與方法) Vue的屬性與方法: 每個 Vue ...
  • 一、概述 HTML5 提供了兩種在客戶端存儲數據的新方法: localStorage - 沒有時間限制的數據存儲 sessionStorage - 針對一個 session 的數據存儲 之前,這些都是由 cookie 完成的。但是 cookie 不適合大量數據的存儲,因為它們由每個對伺服器的請求來傳 ...
  • 初學者經常碰到的,即獲取HTML元素集合,迴圈給元素添加事件。在事件響應函數中(event handler)獲取對應的索引。但每次獲取的都是最後一次迴圈的索引。原因是初學者並未理解JavaScript的閉包特性。 有個網友問了個問題,如下的html,為什麼點擊所有的段落p輸出都是5,而不是alert ...
  • <td style="text-align:center;"> 讓表格中的字居中 style="width:75px; margin-left:1100px;" 增加同一行的兩個標簽的距離: margin-left:1100px 距離屏幕左邊的像素距離。 <a href="#"><i class=" ...
  • objKeySort(obj) ; //函數執行Object {ace: 5, age: 8, name: "zhangsan", nbme: "lisi"};// 執行結果 如果要倒序排列,只需在newkey這個數組中的每一項進行顛倒即可,即var newkey = Object.keys(obj ...
  • 很多時候佈局中需要文字垂直居中,有個CSS屬性:vertical-align: middle;該屬性在table里用是有效果的,很多塊級元素沒反應。這裡有2個屬性可以模擬table,來讓vertical-align: middle屬性生效。 很簡單父級元素給固定寬高加上屬性display: tabl ...
  • 最近有學習了JavaScript,學習的過程中發現js對於前端工程師來說可以是最終要的一部分。 個人認為js就是一門語言,如果把前端比作一個人的身體,那麼html就是一個人的結構,css就是這個人長的樣子,那麼JS就是一個人的行為,不是說Html和css不重要,只是JS 相比較而言更難一點,而且可以 ...
  • 先看看勞動成果 佈局 左右各一半(col-md-6) 左側登錄框占左側一半的10/12 右側是登錄系統的註意事項 使用到的BootStrap元素 well 輸入框組(input-group) 按鈕(btn-success) well 輸入框組(input-group) 按鈕(btn-success) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...