angular控制器常用的4种通信方式
首先概括一下angular控制器通信的4种方式:
- 作用域继承。
- 通过$scope广播事件。
- 事件发射器模块。
- 服务。
<div ng-controller="Controller1">
<div ng-controller="Controller2">
this prints '42':{{answer}}
</div>
</div>
m.controller('Controller1', function ($scope) {
$scope.answer = 42;
});
m.controller('Controller2', function ($scope) {
console.log($scope.answer);
});
2、通过$scope广播事件
<div ng-controller="Controller1">
<div ng-controller="Controller2"> </div>
</div>
m.controller('Controller1', function ($scope) {
$scope.$on('ping', function (){
console.log('pong');
});
$scope.$broadcast('broadcast');
});
m.controller('Controller2', function ($scope) {
$scope.$emit('ping');
$scope.$on('broadcast', function (){
console.log('broadcast');
});
});
3、事件发射器模块event-emitter
- event-emitter是独立于作用域的,所以在无法访问作用域的服务中使用它是非常理想的。
- 将使用的函数被命名为.on(),.emit()。
- 没有对应的$broadcast()函数。
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="event-emitter.js"></script>
<script type="text/javascript">
var app = angular.module('app', []); app.factory('userService', function ($timeout, $window) {
var emitter = $window.emitter();
var user = {}; //模拟http错误
$timeout(function () {
user.emit('error', 'Could not connect to server');
}, 1000); return user;
}); app.factory('profileService', function (userService) {
var ret = {
user: userService,
}; userService.on('error', function () {
console.log('get error');
}); return ret;
});
</script>
4、最常用的通信是服务
angular控制器常用的4种通信方式的更多相关文章
- iOS App之间常用的五种通信方式及适用场景总结
iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问 ...
- iOS日常学习 - App之间常用的五种通信方式及适用场景总结
本文为转载学习,原文地址 iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不 ...
- angular 控制器的使用两种模式
angular.module("myApp",[]) .controller("firstCtrl",["$scope",function( ...
- App间常用的五种通信方式
1.URL Scheme 2.Keychain 3.UIPasteboard剪切板 4.UIDocumentInteractionController 5.local socket 详见: 转自:ht ...
- 【原】实时渲染中常用的几种Rendering Path
[原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...
- iOS导航控制器常用函数与navigationBar常用属性
导航控制器常用函数触发时机 当视图控制器的View将要出现时触发 - (void)viewWillAppear:(BOOL)animated 当视图控制器的View已经出现时触发 - (void)vi ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- 国内常用的三种框架:ionic/mui/framework7对比
国内常用的三种框架:ionic/mui/framework7对比 原文连接:http://zhihu.com/question/19558750/answer/91179040
- .NET中常用的几种解析JSON方法
一.基本概念 json是什么? JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是一种轻量级的数据交换格式,是存储和交换文本信息的语法. ...
随机推荐
- .NET Core 使用RabbitMQ
RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的 ...
- Day-1:初识开发板与基础知识
买的这款51,ARM,AVR三合一的单片机,也不知道后面具体使用会不会有问题,先玩玩看吧. ------------------------------------------------------ ...
- Linux入门之常用命令(12) mount
查看Linux所有设备 cd /dev ls -l sd* //分区 查看Linux磁盘 fdisk -lu 挂载 一般挂载至/mnt /media mount /dev/sda5 /mnt/ ...
- Keyboard Row
Given a List of words, return the words that can be typed using letters of alphabet on only one row' ...
- Python3常用学习网站总结(随时更新)
Python资源大全 http://python.jobbole.com/84464/ https://github.com/jobbole/awesome-python-cn scrapy: h ...
- C#中 什么是装箱和拆箱
装箱:将值类型包装为引用类型 拆箱:将引用类型转换为值类型 例如 objetct obj = null; obj = ; //装箱 int i = (int) obj; //拆箱
- Java web 入门知识 及HTTP协议详解
Java web 入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...
- ajax请求中设置特殊的RequestHeader
现在ajax应用已经相当广泛了,有很多不错的ajax框架可供使用.ajax是一个异步请求,也主要是一种客户端的脚本行为.那么,如何在请求之前为请求添加特殊的一些头部信息呢? 下面是一个简单的例子,我用 ...
- Jquery仿京东分类导航层简单实现
<script src="/js/jquery-1.11.1.min.js" type="text/javascript"></script& ...
- python concurrent.futures
python因为其全局解释器锁GIL而无法通过线程实现真正的平行计算.这个论断我们不展开,但是有个概念我们要说明,IO密集型 vs. 计算密集型. IO密集型:读取文件,读取网络套接字频繁. 计算密集 ...