首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在`<div ng-show = "test.data">`视图中,将`$scope.$broadcast('test',false);`中的false改为true

在`<div ng-show = "test.data">`视图中,将`$scope.$broadcast('test',false);`中的false改为true
EN

Stack Overflow用户
提问于 2018-08-22 00:51:02
回答 1查看 49关注 0票数 -1

当我将控制器false更改为true或将true更改为false

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

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

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

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

下面的示例类似:https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/

代码语言:javascript
复制
(function () {
 'use strict';

 angular
     .module('app')
     .controller('aController', aController);

 function aController($scope) {

     initialize();

     function initialize() {
              set();
     }
     function set() {

        return Service.test()               
            .then(function (data) {

                switch (data.status) {
                    case 'SUCCESS':
                        if ( data.value === false ){  
                            $scope.$broadcast('test', false);
                        } else {
                            $scope.$broadcast('test', true);                            
                        }
                       break;

                    default:
                        $scope.$broadcast('test', true);                         
                        break;
                }

             })
             .catch(function (error) {

             });
     }
    $scope.$on('test', function ($event, data) {

    });


  }

 })();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 03:36:13

如果你有

代码语言:javascript
复制
<div ng-show="test.data">
    ...
</div>

在你的视图中,你应该在你的控制器中做的是:

代码语言:javascript
复制
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) { });
    }
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51953375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档