2014-02-11 67 views
1

有没有方法通过事件pub/sub扩展角度服务,工厂或提供者返回的对象?使用事件扩展角度服务

我想这样做:

angular.module('app').factory('user', function(Event){ 
    var user = { 
    // User methods... 
    }; 
    return angular.extend(user, Event); 
}) 

// In a distant time and place... 
angular.module('app').directive('nav', function(user){ 
    scope: true, 
    templateUrl: 'something', 
    link: function(scope){ 
    user.on('logIn', function(user){ 
     scope.user = user 
    }) 
    } 
}) 

我完成与承诺类似的东西。这通常是异步通信的好方法,但用户可以注销并进入,并且承诺只解析一次。事件在这里更合适。

我也明白我可以通过在$rootScope上播放/发射并在scope上聆听来解决这个问题,但我认为这很臭。 :)

你们想出什么样的模式来调解服务?

回答

0

我使用(修改版)的pubsub服务,您可以查看here

您可以阅读有关权衡为$ rootScope事件和发布 - 订阅此question

希望这有助于

+0

把插件是好的,微小的,我喜欢它。听起来像答案是插入Angular以外的东西。 – SimplGy