AngularJS - MVC 架構

各位有抱負的編程者,大家好!今天,我們將踏上一段令人興奮的旅程,進入 AngularJS 及其 MVC 架構的世界。不僅僅是從未寫過一行代碼的你不必擔心——我將成為你的友好導遊,我們會一步步來。到了這個教學的結尾,你將對 AngularJS 如何施展魔法有堅實的掌握。那麼,讓我們開始吧!

AngularJS - MVC Architecture

MVC 是什麼?

在我們深入 AngularJS 的細節之前,讓我們先來討論 MVC。不,這不是一款新潮的汽車模型——它代表的是 Model-View-Controller(模型-視圖-控制器)。把它想成一個組織代碼的配方,就像你如何可能組織你的衣櫥(如果你比我更有條理的話!)。

MVC 是一種設計模式,將應用程序分為三個主要部分:

  1. 模型(Model):數據和業務邏輯
  2. 視圖(View):用戶界面
  3. 控制器(Controller):連接模型和視圖的中介

現在,讓我們在 AngularJS 的背景下探討這些组件。

模型(Model)

在 AngularJS 中,模型是我們存放數據的地方。它就像是我們應用程序所需的所有信息的數字文件櫥。在 AngularJS 中,我們通常使用所謂的 $scope 來代表我們的模型。

讓我們看一個簡單的例子:

angular.module('myApp', [])
.controller('MyController', function($scope) {
$scope.name = "John Doe";
$scope.age = 30;
});

在這段代碼中,我們創建了一個模型,包含兩個數據:nameage$scope 對象就是我們的模型,它正在保存我們的數據。

但為什麼使用 $scope 呢?嗯,它就像是我們 JavaScript 代碼和 HTML 之間的一座神奇橋樑。我們放入 $scope 的任何數據都可以輕鬆地在視图中顯示(我們稍後會討論這一點)。

視圖(View)

AngularJS 的視圖是用戶看到和交互的部分。它是我們應用程序的漂亮面孔,由 HTML 建立並灑上一些 AngularJS 的魔法粉末(也稱為指令)。

讓我們看看我們如何能在視图中顯示我們的模型數據:

<div ng-app="myApp" ng-controller="MyController">
<h1>Hello, {{name}}!</h1>
<p>You are {{age}} years old.</p>
</div>

這段 HTML 中發生了什麼:

  • ng-app="myApp" 告訴 AngularJS 我們的應用程序從哪裡開始。
  • ng-controller="MyController" 將這部分視圖連接到我們的控制器(我們稍後會更詳細地討論這一點)。
  • {{name}}{{age}} 是顯示我們模型數據的表达式。

當 AngularJS 處理這個視圖時,它將替換 {{name}} 為 "John Doe" 和 {{age}} 為 30,這基於我們模型中的數據。

控制器(Controller)

控制器就像樂團的指揮家。它協調模型和視圖,告訴它們要做什麼以及何時做。在 AngularJS 中,我們使用 JavaScript 來創建控制器。

讓我們擴展我們之前的例子:

angular.module('myApp', [])
.controller('MyController', function($scope) {
$scope.name = "John Doe";
$scope.age = 30;

$scope.celebrateBirthday = function() {
$scope.age++;
alert("Happy Birthday, " + $scope.name + "! You are now " + $scope.age + " years old.");
};
});

在這個控制器中:

  1. 我們設置了我們的初始模型數據(nameage)。
  2. 我們定義了一個函數 celebrateBirthday,它增加年齡並顯示一個提示。

現在,讓我們更新我們的視圖以使用這個新函數:

<div ng-app="myApp" ng-controller="MyController">
<h1>Hello, {{name}}!</h1>
<p>You are {{age}} years old.</p>
<button ng-click="celebrateBirthday()">Celebrate Birthday</button>
</div>

ng-click 指令告訴 AngularJS 在點擊按鈕時調用我們的 celebrateBirthday 函數。

組合所有部分

現在我們已經看到了 MVC 的每一部分在行動,讓我們看看它們是如何一起工作的:

  1. 模型($scope)保存我們的數據(nameage)。
  2. 視圖(我們的 HTML)顯示這些數據,並提供用戶與之交互的方式(按鈕)。
  3. 控制器管理邏輯,當按鈕被點擊時更新模型。
  4. 當模型變化時,AngularJS 自動更新視圖,因此新的年齡會立即顯示。

這種通過 MVC 架構的更新循環正是 AngularJS 如此強大和反應靈敏的原因。

結論

各位,這就是我們對 AngularJS 的 MVC 架構的旋風之旅。記住,就像學習任何新技能一樣,精通 AngularJS 需要練習。如果它立即沒有點醒你——別氣餒——即使是專家編程師也曾經是初學者。

繼續實驗代碼示例,嘗試修改它們,看看會發生什麼。在你意識到之前,你將會建立起複雜的 AngularJS 應用程序,並用你新學到的編程技能讓所有朋友都感到印象深刻的!

開心編程,願 Angular 之力與你同在!

Credits: Image by storyset