【AngularJS學習筆記】01 序

来源:http://www.cnblogs.com/vvjiang/archive/2016/02/24/5215396.html
-Advertisement-
Play Games

AngularJS通過新的屬性與表達式來擴展HTML,有一種很形象的叫法,定義它為聲明式語言。 為剋服HTML在構建應用上的不足而設計! 這是它的目標。 它的官網進不去,應該是被牆了,這是goegle的團隊弄的。所以找了個應用AngularJS的網站,然後另存為下來的。 以一段簡單的代碼開頭 <di


AngularJS通過新的屬性與表達式來擴展HTML,有一種很形象的叫法,定義它為聲明式語言

為剋服HTML在構建應用上的不足而設計!

這是它的目標。

它的官網進不去,應該是被牆了,這是goegle的團隊弄的。所以找了個應用AngularJS的網站,然後另存為下來的。

以一段簡單的代碼開頭

<div ng-app="myApp" ng-controller="myCtrl" ng-init="num1=3;num2=4">
<span ng-bind="num1">3</span><input type="text" ng-model="provinceName"><br><input type="text" ng-model="cityName"><br><input type="text" ng-model="areaName"><br>
<br>
地址: {{provinceName + "省" + cityName+ "市" + areaName+"區"}}
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.provinceName= "湖北";
    $scope.cityName= "武漢";
    $scope.areaName= "洪山";
});
</script>

 

在上面代碼中,以ng-*這樣的格式書寫的屬性,都是AngularJS定義的新屬性。

其中ng-app所在的div為名叫myApp的AngularJS應用程式。

ng-controller 用於控制 AngularJS 應用.

ng-init在相當於在AngularJS應用程式初始化時,啟用的一段JS代碼。

ng-model相當於綁定一個輸入框,到AngularJS應用程式的指定的變數上。

ng-bind綁定AngularJS應用程式里的指定變數到HTML元素上。

但是這裡我們也採用了更簡便的做法,{{}}表達式。AngularJS的表達式,就是相當於一段javascript表達式的計算。AngularJS 表達式不支持條件判斷,迴圈及異常,但支持過濾器。

AngularJS入門就是這麼簡單。

 

AngularJS的對象和變數

來一個展示AngularJS的對象和變數的例子

<div ng-app="" ng-init="myInfo={Name:'Troy123',Job:'程式員'};points=[1,3,2,2,1]">
    <p>信息:{{ myInfo.Job+":"+myInfo.Name  }}</p>
    <p>第一個值為 {{ points[0] }}</p>
</div>

這段代碼很形象,於是讓我們腦補一下自己用JS如何去實現吧。

雖然按我現在的水準而言實現很有難度,但是我們知道它可能是怎麼玩的,更利於我們學習。

腦補實現(我自己思考的實現,並沒有看具體代碼)

HTML操作

那麼首先我寫個JS去查找這個HTML里的屬性為ng-app的元素,然後查找ng-init的屬性,並執行裡面的代碼。

這樣我們得到了名為myInfo的對象和名為points的數組。

然後搜它的子級元素,搜索{{ 表達式的符號,或者ng-bind表達式,或者ng-model,搜到表達式就執行表達式得到結果就放在HTML上好了。

JS操作

而在後面用app.controller來控制就更簡單了,同樣找到元素,操作這個叫myApp的命名空間(應該是個函數體)里的變數的值,就算頁面上沒有變數,JS也會自動加一個內部變數。

然後去找頁面上ng-model和ng-bind或者表達式的位置,然後賦值

應該就是這個樣子。

 


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

-Advertisement-
Play Games
更多相關文章
  • 九宮格小游戲,可從本地圖庫載入一張圖片,填充到9個ImageView,另涉及Timer計時、圖庫控制項。每個格子都是相同的控制項,動態添加到首頁中的,在初始化後,響應touch事件,之後通過多次消息傳遞,來完成整個拼圖過程。裡面有個隨機發牌的經典演算法,也可參考。初始化時,激發每個格子的init事件和in
  • 1 $.ajax({ 2 type: "GET", 3 url: "handleAjaxRequest.action", 4 data: {paramKey:paramValue}, 5 async: true, 6 dataType:"json", 7 success: function(retu
  • 最近一直在惡補基礎JS H5 CSS3的基礎知識 關於這個瀑布流: 本來打算看著教程來做的。 不過 感覺理解起來有點複雜。 SO, 自己參考教程默寫了一個。。 目前我所接觸過的瀑布流佈局分為2大類 主要區分在於 float佈局 或者position佈局 點擊這裡下載Demo 貼下源碼:(可能有些BU
  • 基礎數據結構與演算法 現在有兩個不同的JSON,比較複雜,可以參考這裡的DEMO中返回的JSON。要比較它們的差異,除了用現成的工具如beyond compare以外,如果我們的機器上沒有安裝這個工具,能如何較快解決?作為一個程式員,一個個對比是不可行的,對比完也不會有什麼收穫。我會把之放進Excel
  • 21世紀,瀏覽器雜七雜八,足以讓你眼花繚亂。我們在做頁面相容性測試的時候,面對眾多的瀏覽器該如何調試我們的web頁面?其實,如果你瞭解了瀏覽器的內核,那麼就不會覺得頭疼。因為它們的內核並不是和他的數量一樣那麼多,常見的幾類內核可以歸為:Trident、Gecko、WebKit、Presto 四種。
  • 效果展示: html: <div class="sidebar"> <ul> <li>優先順序 <ul> <li><aonclick=""class="sidebar-selected">全部</a></li> <li><aonclick="">P1</a></li> <li><aonclick=""
  • underscore.js解析
  • 其實函數引用的外部變數都是最後一次的值。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #box{ width:100px; height:100px; b
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...