首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不刷新页面,AngularJs Location.path不会获得当前路径。

不刷新页面,AngularJs Location.path不会获得当前路径。
EN

Stack Overflow用户
提问于 2015-08-24 01:43:37
回答 1查看 1.4K关注 0票数 1

我是新的角,我正在建立一个贷款申请与它。我要做的是为用户设置一种方式,让用户进入应用程序的下一页和前一页。如果刷新页面,安装程序就会正常工作,否则它将不会拉出当前路径。这是我所拥有的。

代码语言:javascript
复制
var app = angular.module('app', ['ngRoute']);

    /*Controller for navigation*/
    app.controller('NavCtrl', function ($scope, $route, $location, $http, $routeParams) {

        var str = $location.path();
        $scope.currentPage = str.replace("/", "");

        /*Get nav.json with navigation data*/
        $http.get('/configs/nav.json').success(function(data) {
          $scope.step = data; 
        });

        /*Set active status for nav buttons*/
        $scope.isActive = function (viewLocation) {
            var active = (viewLocation === $location.path());
        return active;
        }

    });

模板

代码语言:javascript
复制
<div class="forms">
    <div class="wrapper">

       <div ng-view></div>

        <div ng-controller="NavCtrl">
            <div ng-repeat="steps in step" ng-show="steps.url=='{{currentPage}}'">
                <div ng-show="'{{step[$index+1].url}}'!=''" class="next">
                    <a href="#/{{step[$index+1].url}}">Next &#10097;</a>
                </div>
                <div ng-show="'{{step[$index-1].url}}'!=''" class="previous">
                    <a href="#/{{step[$index-1].url}}">&#10096; Back</a>
                </div>
            </div>
        </div>
    </div>
</div>

杰森

代码语言:javascript
复制
[
{"number": "1",
 "title": "Loan Information",
 "url": "loan"
},
{"number": "2",
 "title": "Personal Information",
 "url": "personal"
},
{"number": "3",
 "title": "Income Information",
 "url": "income"
},
{"number": "4",
 "title": "Debt Information",
 "url": "debt"
},
{"number": "5",
 "title": "Reference",
 "url": "reference"
},
{"number": "6",
 "title": "Document & Submit",
 "url": "submit"
}
]

您可以忽略用于顶部导航的控制器中的isActive。

编辑:还尝试了在这里找到的解决方案,Can AngularJS listen for $locationChangeSuccess on refresh?

代码语言:javascript
复制
var app = angular.module('app', ['ngRoute']);

    app.run(function ($rootScope, $location) {
        $rootScope.$on('$locationChangeSuccess', function () {
            $rootScope.currentPage = $location.path().substr(1);
        });
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-24 02:00:22

我认为这是因为您的NavCtrl只创建一次,因此您的代码设置$scope.currentPage只运行一次。

您可以在控制器中侦听$locationChangeSuccess事件以检测对当前路径的更改。

代码语言:javascript
复制
$scope.$on('$locationChangeSuccess', function() {
    $scope.currentPage = $location.path().substr(1);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32173400

复制
相关文章

相似问题

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