Подтвердить что ты не робот

Как отправить объект с помощью $broadcast?

У меня есть следующее:

$scope.$watch('tableForm.$pristine', function (newValue) {
    $rootScope.$broadcast("tableDataUpdated", 
        { state: $scope.tableForm.$pristine });
});

Я также пробовал:

$scope.$watch('tableForm.$pristine', function (newValue) {
    var tableForm = { pristine: $scope.tableForm.$pristine };
    $rootScope.$broadcast("tableDataUpdated", tableForm);
});

При изменении состояния tableForm $pristine значение $scope.tableForm.$pristine устанавливается на False, и это сообщение передается.

Однако, когда я пытаюсь получить сообщение, значение "состояние" не определено:

$rootScope.$on("tableDataUpdated", function (args) {
    alert(args.state);
});

Я также пробовал:

$rootScope.$on("tableDataUpdated", function (args) {
    alert(args.tableForm);
});

Тем не менее я, кажется, не могу отправить объект и получить его

4b9b3361

Ответ 1

То, что функция-слушатель имеет два аргумента, передаваемых в нее, event и args. См. документы angular.

Try:

$rootScope.$on("tableDataUpdated", function (event, args) {
        alert(args.state);
    });