2019独角兽企业重金招聘Python工程师标准>>>

环境:angular.js+sastruts+apache-tomcat

angular.js中当使用路由时,控制器之间通信使用$on,$emit,$boardcast方式实现时,子控制器监听不到父级$boardcast的事件!存在的问题,求解!!并提供的一个解决方法。

如下code, test01Controller控制器中的的变量可以$emit到父控制器(mainController)中,父控制器也可以$on监听到事件,但是,父控制器中$boardcast事件时,子控制器却不可以$on监听到事件。

controller.js

angular.module('mainApp', ['ngRoute']).config([ '$routeProvider', function($routeProvider) {$routeProvider.when('/test01', {templateUrl : 'test01.html',controller: 'test01Controller'}).when('/test01Result', {templateUrl : 'test01Result.html',controller: 'test01ResultController'}).otherwise({redirectTo : '/grid'});
} ]);

html

<!DOCTYPE html>
<html><head>...</head><body ng-app="mainApp" ng-controller="mainController"><div ng-view></div></body>
</html>

目前的一个解决方案是使用$on,$emit,$boardcast方式和作用域的继承方式相结合的方式实现,没有通过$rootScope实现。

test01Controller.js

// 控制器间值传递案①
$scope.$emit("test01Result", obj.resultJson);
$window.location.href = "#/test01Result";

test01ResultController.js

// 控制器间值传递案①
//alert($scope.test01Result);
$scope.test01VForm = angular.fromJson($scope.test01Result);

mainController.js

$scope.$on("test01Result", function(e, obj) {$scope.test01Result = obj;
});

即,子控制器将变量$emit到父控制器中,父控制器$on监听到事件后,将此变量赋值给父$scope一个的变量中,这个父$scope变量可以在其子控制器得到该值。

讨论帖:http://www.oschina.net/question/1050450_174578

初学求解。

以上。

转载于:https://my.oschina.net/wangbiglei/blog/326963

angular.js使用路由时,子控制器监听不到父级$boardcast的事件相关推荐

  1. android输入法状态监听 js,中文拼音输入法在input监听的问题(监听字节数)

    监听文本输入框的input 和propertychange事件,在拼写汉字(输入法)但汉字并未实际填充到文本框中(选词)时会触发input 和propertychange 事件 现在有一个需求需要监听 ...

  2. Vue动态路由传参和监听路由

    Vue动态路由传参 query传参 params传参 //定义Detail路由 {path: '/detail/:id',name: 'Detail'component: () => impor ...

  3. oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...

    [学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Ora ...

  4. oracle 12514 pl sql,plsql登陆oracle报错!连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的...

    plsql登陆oracle出错!连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的. 我添加了 (SID_DESC =  (GLOBAL_DBNAME =  ...

  5. 监听Hierachy、Project等视图结构变化的事件

    之前上网看了MOMO关于监听Hierachy.Project等视图结构变化的事件,原代码是一个日本人写的,MOMO也没有讲原理.这里我通过自己的理解加了些注释,可能有不正确的地方,希望大神指点. 其中 ...

  6. java swing事件监听_Java swing(awt):事件监听机制的实现原理+简单示例

    (1)实现原理 事件监听机制的实现: 参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回 ...

  7. angular.js 嵌套路由

    介绍 AngularJS 嵌套路由:,来看看嵌套的ui-router状态是怎么回事. ui-router和同属AngularJS框架一部分的ng-route一样强大. ui-router提供了让我们可 ...

  8. angular.js的路由和模板在asp.net mvc 中的使用

    首先创建asp.NET mvc 程序,创建一个web api : 1 public class UserController : ApiController 2 { 3 private static ...

  9. addChildViewController时子控制器中的UI显示问题

    问题描述 在主控制器上添加一个子控制器,发现子控制器上的view元素的宽和高不是之前所给定的. 在ViewController里有一个childController,直接在- (void)viewDi ...

最新文章

  1. apache ant 安装_SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
  2. mac下java 开发环境搭建
  3. Tengine 安装和基本使用
  4. VS查看C++类的内存分布、初步了解类的内存分布
  5. mysql大数据更新缓存_redis缓存mysql
  6. JavaScript --- 跨浏览器的事件对象
  7. 4.3.2 基于集合的操作
  8. Flask中的 url_for() 函数
  9. 论文浅尝 - KDD2020 | 真实世界超图的结构模式和生成模型
  10. 【恋上数据结构】动态规划(找零钱、最大连续子序列和、最长上升子序列、最长公共子序列、最长公共子串、0-1背包)
  11. SQLServer2008设置 开启INTERNET远程连接(转)
  12. RestClient的简单介绍
  13. label怎么换行 vb_C#与VB.NET换行符的对比及某些string在label能正常换行,在textbox不能换行的问题...
  14. matlab中如何定义数组,matlab中如何定义一个数组为全局变量?
  15. FTP,SFTP,FTPS,TF区别
  16. 无法通过计算机名访问 win10,win10系统主机名无法访问局域网共享的恢复方法
  17. 苹果手机的ipsec
  18. 入职快两个月的一些感悟
  19. jq插件处女座 图片轮播
  20. 教学用计算机报废年限,教学科研仪器设备报废管理办法

热门文章

  1. ie8/9收到json数据后提示下载的解决方法
  2. csr8670--sink工程的大致工作流程分析(以speaker为例)一
  3. 自然语言处理和编译器的对比
  4. Win7 时间不准不能自动同步,执行w32tm /register发生下列错误: 拒绝访问(0x80070005)
  5. 2022第十二届中国电子文件管理论坛嘉宾揭晓
  6. 从双钻模型看产品规划
  7. Burpsuite配置抓apk流量代理设置脚本
  8. 音频转换成mp3格式的步骤
  9. AAAI 2023 | 基于联合学习与用户传播行为的虚假新闻早期检测
  10. 千万别惹程序员,否则他会在代码注释里告诉这家公司有多坑