如何使用$ broadcast发送对象?

时间:2013-07-22 04:02:36

标签: angularjs

我有以下内容:

$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并且此消息将被广播。

但是,当我尝试接收消息时,未定义“state”的值:

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

我也尝试过:

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

我似乎无法发送对象并收到

1 个答案:

答案 0 :(得分:57)

那是因为侦听器函数有两个参数传递给它eventargs。见the angular docs.

尝试:

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