angularjs 广播事件怎么把json数据传给父级元素

如题所述

1. 源代码发现:)至少1.0.4发布完整代码短
/**
* @param {string} name Event name to listen on.
* @param {function(event)} listener Function to call when the event is emitted.
* @returns {function()} Returns a deregistration function for this listener.
*/
$on: function(name, listener) {
var namedListeners = this.$$listeners[name];
if (!namedListeners) {
this.$$listeners[name] = namedListeners = [];
}
namedListeners.push(listener);
return function() {
namedListeners[indexOf(namedListeners, listener)] = null;
};
},

情况需要返函数
var offCallMeFn = $scope.$on("onViewUpdated", callMe);
//this will deregister that listener
offCallMeFn();

2.
编辑:做确@LiviuT答
您随延角范围允许您删除侦听器所示:
//A little hack to add an $off() method to $scopes.
(function () {
var injector = angular.injector(['ng']),
rootScope = injector.get('$rootScope');
rootScope.constructor.prototype.$off = function(eventName, fn) {
if(this.$$listeners) {
var eventArr = this.$$listeners[eventName];
if(eventArr) {
for(var i = 0; i < eventArr.length; i++) {
if(eventArr[i] === fn) {
eventArr.splice(i, 1);
}
}
}
}
}
}());

面何工作:
function myEvent() {
alert('test');
}
$scope.$on('test', myEvent);
$scope.$broadcast('test');
$scope.$off('test', myEvent);
$scope.$broadcast('test');

行plunker
3.
调试代码我创建自函数像blesh答我做
MyModule = angular.module('FIT', [])
.run(function ($rootScope) {
// Custom $off function to un-register the listener.
$rootScope.$off = function (name, listener) {
var namedListeners = this.$$listeners[name];
if (namedListeners) {
// Loop through the array of named listeners and remove them from the array.
for (var i = 0; i < namedListeners.length; i++) {
if (namedListeners[i] === listener) {
return namedListeners.splice(i, 1);
}
}
}
}
});

所通我函数$ rootscope现提供给我所控制器
我代码我做
$scope.$off("onViewUpdated", callMe);

谢谢
编辑:AngularJS式做 CodeGo.net@LiviuT答想取消注册该侦听器另范围并想远离创建本变量保持登记注册函数引用能解决案
4.
代码工作
$rootScope.$$listeners.nameOfYourBind=[];
温馨提示:内容为网友见解,仅供参考
无其他回答

对比jQuery和AngularJS的不同思维模式
我在邮件列表里看到很多开发者使用150或200行代码的jQuery插件创造出这些复杂的解决方案,然后使用一堆callback函数以及$apply把它粘合到AngularJS里,看起来复杂难懂;但是他们最终还是把它搞定了,问题是在大多数情况下这些jQuery插件可以使用很少的AngularJS代码重写,而且所有的一切都很简单直接容易理解。这里的底线是:当你...

怎么把AngularJS开发的页面迁移到微信小程序
1、div需统一转换成View;2、ng-show统一转换为wx:if;3、ng-click统一转换为bindtap;4、ng-repeat统一用wx:for替换;5、ng-class中的样式选择性绑定可以直接把条件绑定语句嵌入class属性;js代码 模块级代码迁移: 可将模块级作用域使用的通用逻辑搬到app.js中,通过app对象来引用;或者定义一个util...

如何学习web3?
1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,mongodb数据库。深入理解数据库管理系统通用知识及MySQL数据库的使用与管理,为Node.js后台开发打下坚实基础。 2、模块系统,函数,路由,全局对象,文件系统,请求处理,Web模块,Express框架,MySQL数据库处理,RestfulAPI,文件上传等。熟练运用Node.js运行环境和...

相似回答