30

我有以下内容:

$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);
});

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

4

1 回答 1

57

那是因为侦听器函数有两个参数传递给它event, 和args。请参阅角度文档。

尝试:

$rootScope.$on("tableDataUpdated", function (event, args) {
        警报(args.state);
    });
于 2013-07-22T04:22:14.510 回答