AngularJs 服务 广播
2024-10-13 02:52:19
1, angularJs的服务有provider,Service, Factory.
Factory是对Service的封装,Service是对Provider的封装.
Provide的源码如下:
function provider(name, provider_) { if (isFunction(provider_)) { provider_ = providerInjector.instantiate(provider_); } if (!provider_.$get) { throw Error('Provider ' + name + ' must define $get factory method.'); } return providerCache[name + providerSuffix] = provider_; }
Factory的源码如下:
function factory(name, factoryFn) { return provider(name, { $get: factoryFn
});
}
Service的源码如下:
function service(name, constructor) { return factory(name, ['$injector', function($injector) { return $injector.instantiate(constructor); }]);
}
从以上的代码中可以看出,Factory返回的对象是一个实例.Service在此基础上进行了二次的封装.这样就给使用提供了很大的方便
2. AngularJs广播
AngularJs 的广播有$scope.$emit(),和$scope.broadcoast().
发送广播: $scope.$emit(name, data),和$scope.broadcoast(name,data).
接受广播: $scope.on(name,function(event,data){ });
区别在于: $emit 广播给父controller $broadcast 广播给子controller
学习一下
最新文章
- 在Vi里面实现字符串的批量替换
- [hihoCoder#1381]Little Y's Tree
- 超级链接a中javascript:void(0)弹出另外一个框问题
- linux 设置 jdk环境变量
- POJ 1011 sticks 搜索
- ListIterator add remove 使用注意
- Ajax.BeginForm 异步上传附件 替代方案
- 以Windows服务方式运行ASP.NET Core程序
- 【刷题】【LeetCode】总
- NPOI 图片在单元格等比缩放且居中显示
- thinkphp模板继承
- Python 互斥锁
- python requests接口测试
- Javascript 四种输出方式
- memcache的资料集
- C#.NET常见问题(FAQ)-如何把文本复制粘贴到文本框的光标位置
- Saltstack之SSH
- mysql-10临时表、复制表
- AUC,KS,ROC
- opennebula 添加kvm主机日志