我正在使用Phonegap和AngularJS制作Android应用。我正在尝试创建一个按钮,用作“取消”和“后退”按钮,这基本上只是点击浏览器的“后退”按钮。
以下是取消按钮的示例HTML:
<a href="#" ng-click="goBack()" class="button--cancel weight--bold vertical-align--middle text-center">cancel</a>
这是该页面的控制器,带有goBack()按钮:
function NewOccasionCtrl($scope, $window) {
$scope.$window = $window;
$scope.goBack = function() {
$window.history.back();
};
}
这不会引发错误,但也不起作用......模拟器仍保留在同一页面上。如果没有$scope.$window = $window
,则会抛出错误。我希望在不必创建/使用指令的情况下实现功能性的“后退”按钮,因为据我所知,然后实现模板和我不需要/想要的东西。
有办法做到这一点吗?感谢
答案 0 :(得分:10)
我使用指令使后台功能可重用。这是我的最终代码:
HTML:
<a href back-button>back</a>
使用Javascript:
app.directive('backButton', function(){
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('click', goBack);
function goBack() {
history.back();
scope.$apply();
}
}
}
});
答案 1 :(得分:2)
我有这样的问题使用phonegap和angular,$ window.history.back()不起作用。所以我创建了一个解决方法。
$scope.urlHistory = [];
$scope.$on('$routeChangeSuccess', function () {
if ($location.$$absUrl.split('#')[1] !== $scope.urlHistory[$scope.urlHistory.length - 1]) {
$scope.urlHistory.push($location.$$absUrl.split('#')[1]);
}
});
$scope.goBack = function () {
$scope.urlHistory.pop();
$location.path($scope.urlHistory[$scope.urlHistory.length - 1]);
};
希望这有助于其他人。