angularjs的資料綁定
這篇文章主要介紹了關於angularjs的資料綁定,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
angularjs 的資料綁定
在angularjs1.X 中存在了三種資料綁定的方式,用於資料的同步、展示。在angularjs 1.3
之前,angularjs
只存在兩種方式: two-way-binding
和one-way-bindng
, 而後則引入了稱為one-time-binding
的綁定機制。
目前angularjs
中存在以下三種資料綁定方式:
two-way-binding
-
one-way-binding
one-time-binding
two-way-binding
# #angularjs
中的Two-way-binding
的作用是將Model
和
關聯起來,任何一邊的資料變更都會更新另一側的數據。 常見場景是頁面中的輸入區域。雙向綁定可以很容易的將輸入控制項的值關聯到
資料模型
。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><input type="text" id="text" ng-model="name"/></pre><div class="contentsignin">登入後複製</div></div>
透過
- 我們可以很容易的將輸入框(
- view
)的值和
name ( - ) 關聯起來。在雙向資料流的作用下,無論是我們修改輸入框的值或修改
name
在不同生命週期中,有不同的邏輯處理。,另外一側都會及時更新到新資料。
ng-model
是
angularjs內建的一個指令用來實現雙向綁定。
ng-model -
#ng-modelcompilation phase:
指令和 - 指令會合併處理給
input
標籤註冊 keydown -
則註冊一個##interpolation
$watch - 用來訂閱
change
事件(angularjs Event)。
Runtime Phase
#使用者輸入觸發
keydown-
input
事件,呼叫指令捕捉
keydown $apply - 來要求更新動作。
#進入angularjs
更新值到
Model $digest - 上下文
- 表達式偵測到
Model
發生了 change
- Model
- 事件(DOM Event);
,請求更新
DOM。 angularjs
託管結束,退出託管,交還控制權到 JavaScript 執行上下文。 最後瀏覽器重新渲染文字。
不同於
Two-way-binding的雙向流動,
one-way- binding 的資料流向是單向,即只會從
model 流向
view
view 流向
model 。因此,
one-way-binding
- 在
angularjs
中, one-way-binding - ng-bind
和
two-way-binding{{expression} }
。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><span ng-bind="name"> </span> <span>{{name}}</span></pre><div class="contentsignin">登入後複製</div></div>
對於one-way-binding
來說,內部機制和 有部分相同的機制。 - compilation phase:
-
用來訂閱#interpolation
註冊一個
$watch change - 事件(angularjs Event)。
runtime phase:
#angularjs - 進入
$digest
。
-
expression
的 $watch
- 則有兩種語法:
,要求更新
DOM。 angularjs
託管結束,退出託管,交還控制權到 JavaScript 執行上下文。
最後瀏覽器重新渲染文字。
<span>{{::name}}</span>
对于上面的代码,假设 name
从 undefined
-> angularjs
-> angular
,最终渲染的结果是 angularjs
,而不是 angular
。 这就是 one-time-binding
的特殊之处,当 name
从 undefined
变化为 angularjs
之后,被认定为 name
的状态已经是 stable
,因此将取消 $watch
, 即不再监听数据变化。
那么,假设 name
从 ''
-> angularjs
-> angular
, 则渲染结果是 ''
,即空字符串(第一次的值)。因为 one-time-binding
在计算 stable
时候使用的 严格相等,即 newVal === undefined
, 如果是,则继续保留 $watch
等待下一次的比较;否则,状态变更为 stable
,取消 $watch
, 数据转化为最终态。
结束
在我看来,angularjs
核心在于 angularjs context
和 $digest
。
angularjs context
保证 angularjs
可以捕获到各种事件,用户输入、鼠标事件、键盘事件、甚至 $settimeout
和 $http
等异步行为的状态流转。
而 $digest
则保证 angularjs
可以确认是否要更新数据。
文中难免存在一些错误,欢迎大家斧正。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
addEventListener中的EventListener的接口对象
以上是angularjs的資料綁定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Javascript 是一個非常有個性的語言. 無論是從程式碼的組織, 還是程式碼的程式設計範式, 或物件導向理論都獨具一格. 而很早就在爭論的Javascript 是不是物件導向語言這個問題, 顯然已有答案. 但是, 即使Javascript 叱吒風雲二十年, 如果想要看懂jQuery, Angularjs, 甚至是React 等流行框架, 觀看《黑馬雲課堂JavaScript 高級框架設計視頻教程》就對了。

在現今資訊時代,網站已成為人們獲取資訊和交流的重要工具。一個響應式的網站能夠適應各種設備,為使用者提供優質的體驗,成為了現代網站開發的熱點。本篇文章將介紹如何使用PHP和AngularJS建立響應式網站,進而提供優質的使用者體驗。 PHP介紹PHP是一種開源的伺服器端程式語言,非常適合Web開發。 PHP具有許多優點,如易於學習、跨平台、豐富的工具庫、開發效

隨著網路的不斷發展,Web應用已成為企業資訊化建設的重要組成部分,也是現代化工作的必要手段。為了讓Web應用能夠方便開發、維護和擴展,開發人員需要選擇適合自己開發需求的技術框架和程式語言。 PHP和AngularJS是兩種非常流行的Web開發技術,它們分別是伺服器端和客戶端的解決方案,透過結合使用可以大大提高Web應用的開發效率和使用體驗。 PHP的優勢PHP

隨著Web技術的快速發展,單頁Web應用程式(SinglePageApplication,SPA)已成為越來越流行的Web應用程式模型。相較於傳統的多頁Web應用程序,SPA的最大優勢在於使用者感受更加流暢,同時伺服器端的運算壓力也大幅減少。在本文中,我們將介紹如何使用Flask和AngularJS來建構一個簡單的SPA。 Flask是一款輕量級的Py

這篇文章介紹的內容是關於AngularJS基礎入門介紹,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下。

隨著Web應用程式的普及,前端框架AngularJS變得越來越受歡迎。 AngularJS是一個由Google開發的JavaScript框架,它可以幫助你建立具有動態Web應用程式功能的網頁應用程式。另一方面,對於後端編程,PHP是非常受歡迎的程式語言。如果您正在使用PHP進行伺服器端編程,那麼結合AngularJS使用PHP將可以為您的網站帶來更多的動態效

隨著網路的普及,越來越多的人使用網路進行檔案傳輸和分享。然而,由於各種原因,使用傳統的FTP等方式進行檔案管理無法滿足現代使用者的需求。因此,建立一個易用、高效、安全的線上文件管理平台已成為了一種趨勢。本文介紹的線上文件管理平台,基於PHP和AngularJS,能夠方便地進行文件上傳、下載、編輯、刪除等操作,並且提供了一系列強大的功能,例如文件共享、搜尋、

隨著網路的普及和發展,前端開發已變得越來越重要。身為前端開發人員,我們需要了解並掌握各種開發工具和技術。其中,PHP和AngularJS是兩種非常有用且受歡迎的工具。在本文中,我們將介紹如何使用這兩種工具進行前端開發。一、PHP介紹PHP是一種流行的開源伺服器端腳本語言,它適用於Web開發,可以在Web伺服器和各種作業系統上運作。 PHP的優點是簡單、快速、便
