0

我正在我正在工作的 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();
});

我正在处理调用控制器中的注销部分。

我可以在消息总线服务中做些什么作为通用模式并从那里取消注册,而不是在每个控制器上调用取消注册?

4

0 回答 0