I have directive which is site header with back button and I want on click to go back to the previous page. How do I do it in the angular way?
I have tried:
Angular 4:
/* typescript */
import { Location } from '@angular/common';
// ...
@Component({
// ...
})
export class MyComponent {
constructor(private location: Location) { }
goBack() {
this.location.back(); // go back to previous location
}
}
For me, my problem was I needed to navigate back and then transition to another state. So using $window.history.back()
didn't work because for some reason the transition happened before history.back() occured so I had to wrap my transition in a timeout function like so.
$window.history.back();
setTimeout(function() {
$state.transitionTo("tab.jobs"); }, 100);
This fixed my issue.
There was a syntax error. Try this and it should work:
directives.directive('backButton', function(){
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('click', function () {
history.back();
scope.$apply();
});
}
}
});
Or you can simply use javascript code :
onClick="javascript:history.go(-1);"
Like:
<a class="back" ng-class="icons">
<img src="../media/icons/right_circular.png" onClick="javascript:history.go(-1);" />
</a>