在我的角度应用程序中,这是我的路线模式:
$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重新加载控制器,即使路径相同?
答案 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;
}
}
]);