$ scope。$浏览器刷新后没有收听

时间:2017-03-16 04:05:29

标签: angularjs angular-ui-router

我正在使用角度ui-router。 我有以下结构:

  • 声明控制器parentA
  • 陈述a.b控制器childB

我已经解决了播放事件'event1'的状态a.b,并且我在parentA控制器上有一个监听器。

登录时工作正常。但是在随后的浏览器刷新中,我可以看到该事件正在广播,但是监听器无法正常工作。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

这个代码可以帮助你

$scope.$on('$viewContentLoaded', onLoaded);
$scope.$on('viewContentLoadComplete', onLoadComplete);

$rootScope.$on('$stateChangeStart',
    function (event, toState, toParams, fromState, fromParams) { 
        $scope.isViewLoading = true;
    });

$rootScope.$on('$stateChangeSuccess',
    function(event, toState, toParams, fromState, fromParams) {
        $scope.isViewLoading = false;
    });

function onLoaded() { 
    $scope.isViewLoading = true;
    $scope.$broadcast('viewContentLoadComplete');
}

function onLoadComplete() { 
    $scope.isViewLoading = false;
}

当你在父母或孩子的观点之间进行遍历时,你总是会陷入这种情况,你可以处理你想要的东西。

比较简单的解释也欢迎更好的代码。

您可以在主控制器中定义它。这里$ scope.isViewLoading只是一个gif图像,设置为隐藏并显示为加载器。