Как правильно отправлять события с AngularJs $ - PullRequest
0 голосов
/ 26 марта 2020

Я хочу отправить данные с одного контроллера на другой в определенный момент. Я посмотрел на документы и погуглил прежде, чем найти решения. Но не могу заставить его работать должным образом.

Я знаю, что $ emit предназначен для отправки событий вверх по иерархии области видимости, а $ braodcast - для телеграфирования вниз.

var app = angular.module('App.Controllers', ['ui.bootstrap'])
    .controller('FordelaPaBetankandeCtrl', 
        ['$rootScope', '$scope', 
            function ($rootScope, $scope) {

            $scope.$on("delatYrkande", function (selectedValue) {

            });

        }])
        .controller('UtskottCtrl',
            ['$rootScope', '$scope'
                function ($rootScope, $scope) {

                }])
        .controller('TidlinjeCtrl',
            ['$rootScope', '$scope'
                function ($rootScope, $scope) {

                }])
        .controller('UserInfoCtrl', ['$scope',
            function ($scope){

            }])
        .controller('VisaSammantradesplanCtrl', ['$rootScope', '$scope',
            function ($rootscope, $scope) {

            }])
        .controller('HanteraGrunddokumentCtrl',
            ['$rootScope', '$scope',
                function ($rootScope, $scope) {

                    $scope.Emit = function (selectedValue) {

                        $scope.$emit("delatYrkande", selectedValue);
                    }

                }]);

1 Ответ

0 голосов
/ 26 марта 2020

Одним из подходов является трансляция из $ rootScope:

$scope.Emit = function (selectedValue) {
    ̶$̶s̶c̶o̶p̶e̶.̶$̶e̶m̶i̶t̶(̶"̶d̶e̶l̶a̶t̶Y̶r̶k̶a̶n̶d̶e̶"̶,̶ ̶s̶e̶l̶e̶c̶t̶e̶d̶V̶a̶l̶u̶e̶)̶;̶
    $scope.$root.$broadcast("delatYrkande", selectedValue);
}

Для получения дополнительной информации см.

...