Angular JS解析(三)——MVC
来源:互联网 发布:jpg转矢量图软件 编辑:程序博客网 时间:2024/05/21 17:53
之前我们了解到Angular支持MVC应用设计。在MVC设计模式中:
模板(Model)包含了一个代表应用当前状态的数据。
视图(Vidw)则是这个模板数据的直观显示。
控制器(Controller)则管理模板与视图之间的关系。
在创建模板(Model)时可以使用对象的属性或者原始类型来包含你的数据。对于模板变量没有任何的特殊之处。如果你想将一些文本呈现给用户,你可以利用字符串来进行处理,方式如下:
var someText = "You have started your journey.";
通过将HTML网页模板(template)的形式来形成视图,并且将模板(Model)中的数据融合在HTML网页模板中来将数据进行呈现。就像我们之前所用的那样,我们再DOM中插入一个占位符,并将该占位符的文本设置如下:
<p>{{ someText }}</p>
我们称之为双卷插值,因为他将新的文本内容插入到现存的模板(template)中。
控制器(Controller)就我们所编写的一些类或类型,用来告知Angular哪一个对象或元素组成了用户所用的模板(Model)。一般我们通过$scope对象来将这些类或类型传递给控制器(Controller)。如下面的一个控制器函数:
function TextController($scope){
$scope.someText = someText;
}
我们将上述分析代码组合在一起可得一个完整的Angular js应用,如下所示:
<html ng-app><body ng-controller="Text Controller"><p>{{someText }}</p> <script><span style="white-space:pre"></span>src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"> </script> <script><span style="white-space:pre"></span>function Text Controller($scope) {<span style="white-space:pre"></span> $scope.someText = 'You have started your journey.';<span style="white-space:pre"></span>} </script></body></html >
这样将在浏览器中得到相应的字符串显示:You hava started your journey.
尽管这个原始模型的模板在简单的案例中正常工作,但是对于绝大多数的应用而言,用户希望创建一个包含用户对象的模板(Model)对象。通过创建一个模板(Model)对象,并将字符串存放在该模板对象中,于是可以将上述代码函数改写如下:
var someText = "You hava started your journey. "
var messages = {};
messages.someText = someText;
function TextController($scope){
$scope.messages = message;
}
同时在模板(template)中利用该修改,如下所示:
<p>{{ message.someText }}</p>
在上述例子中我们再全局socpe中创建了一个控制器(Controller)。尽管这样做不会出现问题,但正确定义一个控制器方式是作为一个模块(Module)的一部分。这个模块为你应用的请他部分提供了一个命名空间。于是更新后的代码如下所示:
<html ng-app><body ng-controller="Text Controller"><p>{{someText }}</p> <script>src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.1/angular.min.js"> </script> <script><span style="white-space:pre"></span>var myAppModule = angular.module("myApp",[]);<pre name="code" class="javascript">myAppModule.controller("TextController",<span style="font-family: Arial, Helvetica, sans-serif;">function ($scope) {</span>$scope.someText = 'You have started your journey.';}); </script></body></html >
这样我们就告诉ng-app元素我们模块的名称——myApp。这样我们就可以直接利用Angular对象去创建一个名为myApp的模块,同时传递控制器函数到一个响应中,用这个响应来触发模块控制器函数。
注意,要记住Keeping things out of the global namespace is a good thing and that modules are the mechanism we use to do so.
- Angular JS解析(三)——MVC
- Angular JS解析(二)——解析一个APP
- Angular.js(三)
- 【Angular】——Angular mvc
- Angular JS解析(五)——显示文本
- Angular.js中的指令——易懂全解析
- Angular JS解析(四)——模板与数据绑定
- Angular js原文解析
- Angular JS开发指南--(三)
- Angular.js学习笔记(三)
- angular学习(三)—— Controller
- angular学习(三)—— Controller
- Ext JS 4官方指南(三)—— 基本概念之Ext JS MVC架构
- angular JS 三种服务
- angular.js基础—服务(service)及其调用
- Angular.js(一)
- Angular.js(二)
- Angular.js(四)
- 一个flex小表格布局
- 向nginx发送请求
- 十六进制转二进制
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
- 东软实训(十八)
- Angular JS解析(三)——MVC
- 一致性hash算法
- 测试jsoup解析网页遇到的问题Invalid layout of java.lang.String at value
- 黑马程序员--学习日记(九)高新部分java基础加强(二)
- android long power key流程
- Windows服务编写原理及探讨(1)
- 如何保养移动硬盘?
- 理解傅里叶分析
- 《C++ Primer Plus》学习笔记3