angularjs中的消息pub / sub

时间:2015-08-13 16:37:10

标签: angularjs angularjs-rootscope

我正在我正在工作的angularjs项目中创建一个消息服务。

(function (angular) {
    'use strict';

    angular.module('MyApp').factory('messagebus', messagebus);
    messagebus.$inject = ['$rootScope'];

    function messagebus($rootScope) {
        var factory = {
            publish: publish,
            subscribe: subscribe,
        };

        return factory;

        function publish(name, params) {
            $rootScope.$emit(name, params);
        }

        function subscribe(name, listener) {
            return $rootScope.$on(name, listener);
        }
    }
}(angular));

当我打电话给服务时,这就是我正在做的事情

var unregister = messagebus.subscribe('eventname', function (event, message) {
    // do something
});

$scope.$on('$destroy', function () {
    unregister();
});

我正在处理呼叫控制器中未注册的部分。

我可以在messagebus服务中做一些通用模式并从那里注册而不是在每个控制器上调用unregister吗?

0 个答案:

没有答案