Angularjs 将“$scope.$broadcast(';test';false)”中的false更改为true在`<;div ng show=";测试数据“>;`看法

Angularjs 将“$scope.$broadcast(';test';false)”中的false更改为true在`<;div ng show=";测试数据“>;`看法,angularjs,Angularjs,当我将控制器中的false更改为true或true更改为false $scope.$broadcast('test',false) 在控制器视图中,没有任何更改: 我不知道为什么。你有主意了 此处的示例类似: 如果你有 <div ng-show="test.data"> ... </div> 甚至不需要使用$scope.$broadcast() 您是否期望$scope.$broadcast('test',false)自动将$scope.test.data值设

当我将控制器中的
false
更改为
true
true
更改为
false

$scope.$broadcast('test',false)

在控制器视图中,没有任何更改:

我不知道为什么。你有主意了

此处的示例类似:

如果你有

<div ng-show="test.data">
    ...
</div>

甚至不需要使用
$scope.$broadcast()

您是否期望
$scope.$broadcast('test',false)
自动将
$scope.test.data
值设置为
false
?是的,例如:
if(value==true){$scope.$broadcast('test',true);}else{$scope.$broadcast('test',false);}
让我们看看控制器代码<代码>$scope.$broadcast()
仅广播消息/事件。您必须在控制器中处理该消息/事件。使用
$scope.$broadcast()
时不会自动设置属性。如何处理此更改
$scope.$broadcast('test',false)在控制器中?您可以将控制器代码添加到您的问题中吗?
$scope.test
是控制器中的对象还是简单的原语?
<div ng-show="test.data">
    ...
</div>
function aController($scope) {
    initialize();
    function initialize() {
        $scope.test = { data: true };
        set();
    }

    function set() {
        Service.test()               
            .then(function (data) {
                if(data.status === 'SUCCESS') {
                    $scope.test.data = data.value;
                } else {
                    $scope.test.data = true;
                }
            })
            .catch(function (error) { });
    }
}