问题:有几个与服务/工厂通信的指令与服务器通信/记录操作。 我应该将它们之间的关系声明为依赖
angular.module('someModule', [])
.directive('someDir', ['logger', function ( logger ) {
//...
}])
.service('logger', ['$http', function( $http ){
//...
}]);
或基于事件的关系?
angular.module('someModule', [])
.directive('someDir', ['$rootScope', function ( $rootScope ) {
$rootScope.$emit('someEvent');
// ...
}])
.service('logger', ['$http', '$rootScope', function( $http, $rootScope ){
$rootScope.$on('someEvent', function(){
// ...
});
// ...
}]);
除了,我想,脱钩有什么利弊?
答案 0 :(得分:1)
使用事件有一些明显的优势:
someEvent
上,您不仅要记录某些内容,还要执行其他操作,然后创建订阅者来处理新方案。事件确实有一些缺点:
我个人使用事件来处理不属于主要流程的场景。记录是这种功能的一个很好的例子。