if you have a controller to manipulate $scope variables in Angular.js, is there an idiomatic way to:
For complex controllers it would be very convenient not to have to reset every variable to it's initial value, especially if what you really want is a simple reinitialization of the controller and the scope. Navigating to the same URL again via $location.path()
doesn't help, though.
Edit: Suppose I can't use any $window.location
hack because this would violate the CSP in Chrome Packaged Apps.
Just after asking, I finally found one way to solve this using $route.reload()
.
myapp.Controller('SampleController', function($location, $route) {
$scope.navTo = function(url) {
if ($location.path() === url) {
$route.reload();
} else {
$location.path(url);
}
}
});
I'm still thinking, that there must be some more elegant solution, but this definitely works for me.