我可以强制控制器重新加载一些数据,当人们回击按钮甚至在角度相同的路线上?

时间:2015-11-18 18:07:56

标签: angularjs angular-routing

在我的角度应用程序中,这是我的路线模式:

 $routeProvider
    .when('/DocumentUploader/folder/:folderid?', {
        templateUrl: '/FileManagers/views/items.html',
        controller: 'ItemsCtrl',
        controllerAs: 'items'
    })
    .otherwise({
        redirectTo: '/DocumentUploader/folder'
    });

加载页面时,默认路由为: http://localhost:5460/Workbenchv2.cshtml#/DocumentUploader/folder

所以这将转到根文件夹。

然后用户可以单击文件夹名称,路径将更改为 http://localhost:5460/Workbenchv2.cshtml#/DocumentUploader/folder/92E39760-156D-4C62-A295-E4D1C20706CD(文件夹的内部ID)

现在如果用户点击后退按钮,angular将不会重新加载控制器(因为它是相同的路径),所以我无法刷新我的数据。

是否可以强制angularjs重新加载控制器,即使路径相同?

1 个答案:

答案 0 :(得分:1)

我在这里创建了一个Plunker:Plunker Link

在我的情况下,当用户单击后退按钮时,将重新加载控制器。这是我正在使用的控制器:

myApp.controller('ItemsCtrl', ['$scope', '$routeParams', 
  function($scope, $routeParams){
    var folderId = $routeParams.folderid;

    if(!folderId){
      $scope.msg = 'You are in root folder';
    } else {
      $scope.msg = 'You are in folderId=' + folderId;
    }
  }
]);