angularjs1学习笔记--持续更新
2018-06-24 01:26:33来源:未知 阅读 ()
angularJS使用的MVC为何不属于二十三种设计模式之一?
MVC被GoF (Gang of Four,四人组, 《Design Patterns: Elements of Reusable Object-Oriented Software》/《设计模式》一书的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)当做“一组用于构建用户界面的类集合”。MVC被认为是三种经典设计模式的演变::观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite)。MVC属于架构模式,而不是设计模式。
angularJS的广播事件,$emit与$broadcast
要想理解angularJS的广播事件,首先要理解$scope的作用域。$scope的作用域是树状结构的,有且有唯一一个根作用域$rootScope。联系到树状的结构,可以更好的理解angularJS提供两种事件:向上传播事件$emit以及向下传播事件$broadcast。其中向上传播事件$emit能够被该树上的所有父$scope以及同级$scope。向下传播事件以当前$scope为根,传播所有的子$scope控制器。这两种广播事件当然也对自身控制器起作用。
下面是我自己写的一个例子,介绍了$emit与$broadcast的事件的作用域。
html Code:
<div ng-controller="parentController">
<p>{{breadCrumb}},parentController</p>
<div ng-controller="currentController">
<p>{{breadCrumb}},currentController</p>
<button ng-click="$emit('MyEvent')">
$emit("MyEvent")
</button>
<button ng-click="$broadcast('MyEvent')">
$broadcast("MyEvent")
</button>
<div ng-controller="childController">
<p>{{breadCrumb}},childController</p>
</div>
</div>
<div ng-controller="sameLevelController">
<p>{{breadCrumb}},sameLevelController</p>
</div>
</div>
<div ng-controller="other_controller">
<button ng-click="$emit('MyEvent')">
$emit("MyEvent")
</button>
<button ng-click="$broadcast('MyEvent')">
$broadcast("MyEvent")
</button>
<p>{{breadCrumb}},other_controller</p>
</div>
JavaScript Code:
function parentController($scope) {
$scope.breadCrumb = 1;
$scope.$on("MyEvent", function() {
$scope.breadCrumb++;
});
}
function currentController($scope) {
$scope.$on("MyEvent", function() {
$scope.breadCrumb--;
});
}
function other_controller($scope) {
$scope.breadCrumb = 10;
$scope.$on("MyEvent", function() {
$scope.breadCrumb--;
});
}
function sameLevelController($scope) {
$scope.$on("MyEvent", function() {
$scope.breadCrumb=$scope.breadCrumb+2;
});
}
function childController($scope) {
$scope.$on("MyEvent", function() {
$scope.breadCrumb=$scope.breadCrumb+10;
});
}
通过点击按钮观察数字的变化,可以明显的发现树型结构作用域对html界面更新的影响,同时还可以注意到子$scope会继承最近路径上父$scope传来的变量值。
$rootScope绑定的范围
在angularJS启动的时候绑定ng-app的内容
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Jquery插件写法笔记整理 2020-03-29
- 如何用javascript连接access数据库 2020-03-20
- 在JavaScript中尽可能使用局部变量的原因 2020-03-08
- JsEasy的介绍 2019-10-25
- DEFER的使用方法 2019-10-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash