角度刷新当前页面 - 问题

时间:2015-11-10 03:59:55

标签: angularjs

home.html是一个包含两个字段集的模板。 我使用ng-show在页面加载时使第一个字段集可见,当用户单击按钮时,其他字段集可见,第一个字段集隐藏。 这是通过使用变量'preview'来完成的(这是一个jsfiddle):

<div ng-app="app">
    <div ng-controller="MainController">
       <fieldset ng-show="!preview">
           <p>This is fieldset 1</p>
           <button ng-click="toggleIt()">Toggle</button>
       </fieldset>
       <fieldset ng-show="preview">
           <p>This is fieldset 2</p>
       </fieldset>
        <a href="#" ng-click="returnIt()">Home</a>
    </div>
</div>

和控制器类似:

    angular.module('app', []).
controller('MainController', ['$scope', function ($scope) {
    $scope.preview = false;  

    $scope.toggleIt = function(){
     $scope.preview = true;   
    }  
    $scope.returnIt = function(){
      location.reload();  
    }   
}]);

在JsFiddle中它工作正常,但当我在我的角应用程序中使用'Home'链接时:

<a href="/">Home</a>

这是由app.routes.js文件

获取的
.when('/', {
            templateUrl : 'app/views/pages/home.html',
            controller: 'MainController',
            controllerAs: 'main'
        }) 

没有任何反应 - fieldset 2仍然是可见的而不是fieldset 1。 我期望$scope.preview将被设置为false,因为这是控制器中的第一行,这将使第一个字段集再次可见。 当我进行浏览器刷新时,它可以工作但不使用路由。 我已经尝试location.reload();(这在小提琴中起作用),但是当我在app控制器中应用它时,我得到TypeError:$location.reload不是函数。

我已经尝试$route.reload()将其发送到无限循环中,并window.location.reload()继续重新加载。

有没有一种简单的方法可以通过路由实现类似浏览器的页面刷新?

0 个答案:

没有答案