AngualrJS是一個很貼心的web應用程式框架。它有很不錯的官方文檔和樣本;經過在現實環境中的測試著名的TodoMVC project,它在海量的架構中脫穎而出;而且網上到處都是很不錯示範或者展示。但是對於一個沒有接觸過和AngularJS相似的架構而且還是幾乎都在使用像jQuery這樣的JavaScript類庫的開發人員來講,要從jQuery的思想轉變成AngularJS的思想是有點困難的。至少對於我來說是這樣的,所以我想要分享一些學習筆記希望幫到一些開發人員。
本篇通過jQuery和Angular兩種方式來實現同一個執行個體,從而體驗兩者的不同點以及AngularJS的迷人之處。
首先當然需要引用jquery.js和angular.js檔案。
■ 使用jQuery讓寫一個簡單的click事件
<button id="jquery-button">JQuery Button</button><div id="jquery-content">I am jquery content</div>$(function(){$("#jquery-button").click(function(){$('#jquery-content').toggle();})})
如果我們想讓更多的div通過同一個點擊事件實現toggle呢?
--首先要在頁面中添加div,然後在js中添加相應的代碼<button id="jquery-button">JQuery Button</button><div id="jquery-content">I am jquery content</div><div id="jquery-content1">I am jquery content1</div>$(function(){$("#jquery-button").click(function(){$('#jquery-content').toggle();$('#jquery-content1').toggle();})})
在AngularJS中又是怎樣的一種情況呢?
■ 使用Angular來寫一個簡單的click事件
<div ng-app="app" ng-controller="AppCtrl as app"><button ng-click="app.toggle()">Angular Button</button><div ng-hide="app.isHidden">Angular content</div></div>var app = angular.module("app",[]);app.controller("AppCtrl", function(){var app = this;app.isHidden = false;app.toggle = function(){app.isHidden = !app.isHidden;}})
如果我們想讓更多的div通過同一個點擊事件實現toggle呢?
--我們只要在頁面中添加一個div,通過ng-hide屬性來聲明<div ng-app="app" ng-controller="AppCtrl as app"><button ng-click="app.toggle()">Angular Button</button><div ng-hide="app.isHidden">Angular content</div><div ng-hide="app.isHidden">Angular content1</div></div>
以上,通過簡單的例子,來比較jQuery和Angular的不同之處,我們可以發現:AngularJS中通過聲明的方式來應對變化,相比jQuery,AngularJS應對變化的成本更低也更靈活。