AngularJS 必會語法解說
Two-way Data Binding
在 AngularJS 裡,所有在 View 與 Controller 之間,都是透過 Model 來做資料傳遞,
無論你在 View 這端透過表單元素修改了內容,或是在 Controller 這端修改了 Model 內容,
兩邊都會即時發生變化,因為在 AngularJS 框架中會監控 (watch) Model 物件的任何變化,
並隨時反映到 View 上面。以下是雙向資料繫結的示意圖:
是用來宣告angular的範圍
ng-controller & $scope
https://jsbin.com/nocedibagi/edit?html,js,output
$scope
https://docs.angularjs.org/guide/scope
Scope as Data-Model
Scope is the glue (膠;膠水) between application controller and the view.
•連結 html (view) 與 JS (controller) 的橋樑
•每一個 angular 的應用程式只會有一個 root scope,但是可以有很多子 scope 物件(即可以多個controller)
•當宣告一個 controller 時,就會產生一個 scope 物件(Data-Model)
將 html 上輸入的值綁定到 scope 上
http://jsbin.com/ogecuw/1/edit
所以
當 html 的值變化: scope 上的值變化
當 controller 把 scope 的值改變: html 上顯示的值也會改變
=> two-way binding
angularJS ng-model v.s. javascript && JQuery
javascript
1 | html: |
JQuery
1 | html: |
內嵌繫結 (Interpolation)
{{ 要顯示的 scope 內的變數 }}
ng-bind
ng-click
https://jsbin.com/angularjs-controller/3/edit?html,output
ng-show/ng-hide
https://code.angularjs.org/1.2.6/docs/api/ng.directive:ngShow
http://jsbin.com/opojaq/7/edit
ng-init
http://jsbin.com/ucodup/7/edit
ng-repeat
https://jsbin.com/fahahuseba/edit?html,css,js,output
https://docs.angularjs.org/api/ng/directive/ngRepeat
track by $index
1 | Best Practice: If you are working with objects that have a unique |
input 欄位
https://code.angularjs.org/1.2.6/docs/api/ng.directive:input
1 | input 有以下屬性: |
input checkbox
https://jsbin.com/egavik/1/edit?html,output
ng-option
http://blog.miniasp.com/post/2013/05/12/AngularJS-ng-module-select-ngOptions-usage-samples.aspx
https://jsbin.com/gekahapeto/edit?html,js,output
pipe filter
https://code.angularjs.org/1.2.6/docs/api/ng.filter:currency
內建的 filter
1 | currency 加入貨幣符號 |
https://jsbin.com/uPETequ/2/edit?html,output
1 | (function () { |
自訂 pipe filter
1 | app.filter('itemFilter', function() { |
$watch
https://code.angularjs.org/1.2.6/docs/api/ng.$rootScope.Scope
ng-grid
https://github.com/angular-ui/ng-grid-legacy/wiki
eac108e.js
js 呼叫 rest api
1 | $scope.query = function(ped, omitAlerts) { |
brt306e.html & brt306e.js 解說
1 |
|
1 | (function() { |
References:
- AngularJs 官網-中文化
- AngularJs 官網
- 介紹 - 前端工程的極致精品: AngularJS 開發框架介紹
- 入門教學 - 入門AngularJS筆記與前端領域的學習筆記分享
- 進階教學 - 我在前端 ng 時
- 學習AngularJS 1.x