帶你初識Angular中MVC模型


簡介

MVC是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計模式,該模型的理念也被許多框架所吸納,比如,后端框架(Struts、Spring MVC等)、前端框架(Angular、Backbone等)。在學習angular的過程中,我在網上查找關於angular MVC介紹的文章很少,有些文章也沒有很直白地為初學者指明angular MVC到底是啥樣貌,因此,今天我們就來談談MVC模型在angular的形態。

為了介紹angular MVC模型,我建立一個最簡單的例子。該例子的啟動展示結果為:

              image

下面我會逐一解釋。

view

view指的是視圖,在web前端工程中,view往往指的是HTML代碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/bootstrap.css" type="text/css">
</head>
<body ng-app="app">

    <div class="col-md-4 col-md-offset-4" ng-controller="InputController">
        模型數據: <input type="text" class="text-primary" ng-model="book.title">
    </div>

    <script src="js/angular.js"></script>
    <script src="js/demo1.js"></script>
</body>
</html>

model

model指的是模型數據,在java后端開發中,我們常常使用java為業務數據單獨建模,然而,在前端中,我們也可以為數據建立模型。比如,下面的代碼片段。
var book = {
        title: "angular"
    }
我們為書籍建立一個數據模型對象,為了簡單,我只為book聲明了一個屬性。
 

controller

controller指的是控制器,它的作用是控制model與view之間的交互。
angular.module("app", ["InputModule"]);

angular.module("InputModule", [])
.controller("InputController", ["$scope", function ($scope) {
    var book = {
        title: "angular"
    }
    $scope.book = book;
}]);
在此例中,我將模型數據book定義在angular的controller控制器中。要想將模型中的數據傳遞給視圖,angular規定依附在$scope上的數據才能傳遞給視圖。

總結

接下來,我用圖來描述一下angular中MVC 的關聯。
image

在全局使用ng-app指令,我就不多介紹了。
1、通過在div中添加屬性ng-controller="InputController",並設置屬性值,通過angular解析關聯到相關的控制器。
     也只有該div元素及其子元素,才能有權限使用InputController中的$scope對象上的模型數據。
2、ng-model="book.title",通過angular解析,關聯到其所處控制器中的$scope對象。
     根據指令的不同,關聯到$scope對象上的方式也不同。
     ng-model指令將$scope對象與view對象的值進行雙向綁定,猶如java中將對象的引用傳給了view對象。
     ng-bind指令則是將$scope對象與view對象進行單向綁定,猶如java中將對象的副本值傳給view對象。
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM