angular.js使用路由时,子控制器监听不到父级$boardcast的事件
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的事件相关推荐
- android输入法状态监听 js,中文拼音输入法在input监听的问题(监听字节数)
监听文本输入框的input 和propertychange事件,在拼写汉字(输入法)但汉字并未实际填充到文本框中(选词)时会触发input 和propertychange 事件 现在有一个需求需要监听 ...
- Vue动态路由传参和监听路由
Vue动态路由传参 query传参 params传参 //定义Detail路由 {path: '/detail/:id',name: 'Detail'component: () => impor ...
- oracle rac添加监听,【学习笔记】Oracle 10G RAC增加节点时手动注册监听服务的案例步骤...
[学习笔记]Oracle 10G RAC增加节点时手动注册监听服务的案例步骤 时间:2016-10-22 22:53 来源:Oracle研究中心 作者:HTZ 点击: 次 天萃荷净 Ora ...
- oracle 12514 pl sql,plsql登陆oracle报错!连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的...
plsql登陆oracle出错!连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的. 我添加了 (SID_DESC = (GLOBAL_DBNAME = ...
- 监听Hierachy、Project等视图结构变化的事件
之前上网看了MOMO关于监听Hierachy.Project等视图结构变化的事件,原代码是一个日本人写的,MOMO也没有讲原理.这里我通过自己的理解加了些注释,可能有不正确的地方,希望大神指点. 其中 ...
- java swing事件监听_Java swing(awt):事件监听机制的实现原理+简单示例
(1)实现原理 事件监听机制的实现: 参考图:事件模型_ActionEvent 为了节省资源,系统无法对某个事件进行实时的监听.故实现的机制是当发生某个事件后,处理代码将被自动运行,类似钩子一般.(回 ...
- angular.js 嵌套路由
介绍 AngularJS 嵌套路由:,来看看嵌套的ui-router状态是怎么回事. ui-router和同属AngularJS框架一部分的ng-route一样强大. ui-router提供了让我们可 ...
- angular.js的路由和模板在asp.net mvc 中的使用
首先创建asp.NET mvc 程序,创建一个web api : 1 public class UserController : ApiController 2 { 3 private static ...
- addChildViewController时子控制器中的UI显示问题
问题描述 在主控制器上添加一个子控制器,发现子控制器上的view元素的宽和高不是之前所给定的. 在ViewController里有一个childController,直接在- (void)viewDi ...
最新文章
- apache ant 安装_SAP Hybris使用recipe进行安装时,是如何执行ant命令的?
- mac下java 开发环境搭建
- Tengine 安装和基本使用
- VS查看C++类的内存分布、初步了解类的内存分布
- mysql大数据更新缓存_redis缓存mysql
- JavaScript --- 跨浏览器的事件对象
- 4.3.2 基于集合的操作
- Flask中的 url_for() 函数
- 论文浅尝 - KDD2020 | 真实世界超图的结构模式和生成模型
- 【恋上数据结构】动态规划(找零钱、最大连续子序列和、最长上升子序列、最长公共子序列、最长公共子串、0-1背包)
- SQLServer2008设置 开启INTERNET远程连接(转)
- RestClient的简单介绍
- label怎么换行 vb_C#与VB.NET换行符的对比及某些string在label能正常换行,在textbox不能换行的问题...
- matlab中如何定义数组,matlab中如何定义一个数组为全局变量?
- FTP,SFTP,FTPS,TF区别
- 无法通过计算机名访问 win10,win10系统主机名无法访问局域网共享的恢复方法
- 苹果手机的ipsec
- 入职快两个月的一些感悟
- jq插件处女座 图片轮播
- 教学用计算机报废年限,教学科研仪器设备报废管理办法
热门文章
- ie8/9收到json数据后提示下载的解决方法
- csr8670--sink工程的大致工作流程分析(以speaker为例)一
- 自然语言处理和编译器的对比
- Win7 时间不准不能自动同步,执行w32tm /register发生下列错误: 拒绝访问(0x80070005)
- 2022第十二届中国电子文件管理论坛嘉宾揭晓
- 从双钻模型看产品规划
- Burpsuite配置抓apk流量代理设置脚本
- 音频转换成mp3格式的步骤
- AAAI 2023 | 基于联合学习与用户传播行为的虚假新闻早期检测
- 千万别惹程序员,否则他会在代码注释里告诉这家公司有多坑