当我将控制器false
更改为true
或将true
更改为false
时
$scope.$broadcast('test', false);
在控制器视图中,没有更改:
<div ng-show = "test.data">
我不知道为什么。你有个主意。
此处的示例类似: https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/
(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) {
});
}
})();
答案 0 :(得分:1)
如果有
push(Stats)
在您看来,那么您应该在控制器中执行的操作是:
<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) { });
}
}
。