【问题标题】:AngularJs RouteName not updatingAngularJs RouteName 没有更新
【发布时间】:2016-08-20 04:41:45
【问题描述】:

我有以下设置:

我有一个控制页面顶部导航栏的标题控制器。输入不同的路线时,我想更改导航布局。我遇到的问题是我可以检测到路线,但只有在用户刷新页面时才能检测到。

例子:

<div data-ng-controller="HeaderController" >
...
<span>Product Name - {{layout}}</span>
...
</div>

我的头控制器:

angular.module('myApp.system').controller('HeaderController', ['$scope', 'Global', '$location', '$route', function ($scope, Global, $location, $route) {
...

    $scope.layout = $location.path().includes('projectEditor');
...

}]);

当你选择一个按钮时,它会打开一个带有路由的页面:projectEditor/1。但是跨度仅在您刷新页面时更新。我的计划是在类上使用条件,但它仅在用户刷新页面时才有效。

我使用的是 1.5.5 版本的 angular。

如何在我的标头控制器中获取该范围变量以更新任何人都知道的路由更改?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    为了知道位置何时改变,你应该使用事件:

    https://docs.angularjs.org/api/ngRoute/service/$route#events

    解决方案取决于您用于路由应用程序的实现。 这是默认角度路由器的示例

    $rootScope.$on( "$routeChangeStart", function(event, next, current) {
        $scope.layout = 'newRoute';
    }
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      好的,我发现我需要使用 $routeChangeStart 并更新 $routeScope 变量,然后附加到该变量。

      谢谢大家!

      【讨论】:

        猜你喜欢
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-08
        • 1970-01-01
        相关资源
        最近更新 更多