刚刚看了网上的一些关于控制器之间的通信;然后结合自己项目做了一些,这里主要做的是二个同级之间的controller通信。

Html:

 <html>
<script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
<body>
<div ng-app="app">
<div ng-controller="childCtr1">name :
<input ng-model="name" type="text" />
</div>
<div ng-controller="childCtr2">Ctr1 name:
{{ctr1Name}}
</div>
</div>
</body>
</html>

上面的html代码设置了2个同级的控制器,现在childCtr2需要childCtr1的参数来显示相关信息,下面是控制器childCtr1的代码:

 angular.module("app", [])
.controller("childCtr1", function ($scope) {
$scope.$watch("name",function (){//监听绑定“name",当发生改变时发送消息;
//alert("123");
$scope.$emit("Ctr1NameChange", $scope.name);//发送名为Ctr1NameChange的消息,值为$scope.name
});
});

下面是childCtr2的代码:

angular.module("app", [])
.controller("childCtr2", function ($scope) {
$scope.$on("Ctr1NameChange",//监听有没有名为”Ctr1NameChange“的消息,如果有,则执行下面函数 function (event, msg) {
console.log("childCtr2", msg);
$scope.ctr1Name = msg;
});
});

以上是针对控制器分离的文件写的不同形式;当然也可以将他们合并到一个页面

 angular.module("app", [])
.controller("childCtr1", function ($scope) {
$scope.$watch("name",function (){
//alert("123");
$scope.$emit("Ctr1NameChange", $scope.name);
});
}).controller("childCtr2", function ($scope) {
$scope.$on("Ctr1NameChange", function (event, msg) {
console.log("childCtr2", msg);
$scope.ctr1Name = msg;
});
});

还有很多控制器之间的通信方法,包括server的factory,可以参考:http://jsbin.com/hopazo/5/edit?html,css,js,output

Angularjs controller之间的通信的更多相关文章

  1. AngularJS进阶(九)控制器controller之间如何通信

    AngularJS控制器controller之间如何通信 注:请点击此处进行充电! angular控制器通信的方式有三种: 1,利用作用域继承的方式.即子控制器继承父控制器中的内容 2,基于事件的方式 ...

  2. AngularJS实战之Controller之间的通信

    我们时常会在不同controller之间进行通信,接下来就介绍三种controller之间的通信方式 一.使用$on.$emit和$broadcast进行controller通信 虽然AngularJ ...

  3. angularJS中directive与controller之间的通信

    当我们在angularJS中自定义了directive之后需要和controller进行通讯的时候,是怎么样进行通讯呢? 这里介绍3种angular自定义directive与controller通信的 ...

  4. AngularJS 中 Controller 之间的通信

    用 Angular 进行开发,基本上都会遇到 Controller 之间通信的问题,本文对此进行一个总结. 在 Angular 中,Controller 之间通信的方式主要有三种: 1)作用域继承.利 ...

  5. Angularjs Controller 间通信机制

    在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需 ...

  6. 【转】Angularjs Controller 间通信机制

    在Angularjs开发一些经验总结随笔中提到我们需要按照业务却分angular controller,避免过大无所不能的上帝controller,我们把controller分离开了,但是有时候我们需 ...

  7. angularJS中directive与directive 之间的通信

    上一篇讲了directive与controller之间的通信:但是我们directive与directive之间的通信呢? 当我们两个directive嵌套使用的时候怎么保证子directive不会被 ...

  8. angularJS的controller之间如何正确的通信

    AngularJS中的controller是个函数,用来向视图的作用域($scope)添加额外的功能,我们用它来给作用域对象设置初始状态,并添加自定义行为. 当我们在创建新的控制器时,angularJ ...

  9. angularJS项目-ajax事件的按钮loading和页面loading状态 & Controller之间通信-待续

    1).按钮loading --TODO 2). page loading状态 1.在module中注入指令 // Route State Load Spinner(used on page or co ...

随机推荐

  1. Jmeter参数化与检查点

    一.Jmeter参数话有3种方法: 1. add->pre processors->user parameter(用户参数) 2.add->config Element->CS ...

  2. CentOS 配置使用 EPEL YUM 源

    EPEL(Extra Packages for Enterprise Linux)是一个由特别兴趣小组创建.维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS. ...

  3. 可调试Windows服务框架

    参考: Build A Windows Service Framework 新建ServiceFramework类库,项目中需引用: using System.Configuration.Instal ...

  4. database lock

    USE masterEXEC sp_lock select * from sys.sysprocesses where blocked<>0 DBCC INPUTBUFFER(120) k ...

  5. JAVA实现单双向链表的增、删、改、查

    单向链表 package com.ywx.link; /** * 单向链表 * @author vashon * */ public class LinkTest { public static vo ...

  6. vue-cli3.0配置接口代理

    根目录 新建   vue.config.js 文件,自动加载配置. // 作为配置文件,直接导出配置对象即可 module.exports = { devServer: { // 设置主机地址 hos ...

  7. python笔记05-----函数

    函数 编程序语言中函数定义:函数是逻辑结构化和过程化的一种编程方法 def func(i): # def :定义函数的关键字:func:函数名:()内可以定义形参 i += 1 # 代码块或程序处理逻 ...

  8. C# 获取config文件 实体转换

    随着项目的扩展,单独的key,value配置文件已经不能满足需求了 这里需要自定义配置节点,例如 <!--自定义 具体实体类配置问节点信息--> <School Name=" ...

  9. js加载事件和js函数定义

    一  dom文档树加载完之后执行一个函数 在Dom加载完成后执行函数,下面这三个的作用是一样的,window.onload 是JavaScript的,window.onload是在dom文档树加载完和 ...

  10. java 对CSV 文件的读取与生成

    CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开.CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CS ...