1. 程式人生 > >angular中的MVC思想

angular中的MVC思想

-c 建模 bootstra [] htm 前端 屬性 set bsp

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

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指的是模型數據,在java後端開發中,我們常常使用java為業務數據單獨建模,然而,在前端中,我們也可以為數據建立模型。比如,下面的代碼片段。
var book = {
title: "angular"
}
我們為書籍建立一個數據模型對象,為了簡單,我只為book聲明了一個屬性。 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上的數據才能傳遞給視圖。 在全局使用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對象。

angular中的MVC思想