1
각도로 항목을 변경 한 경우 사용자가 양식을 나가는 것을 방지하려고합니다. 이것에 대한 기사를 읽고 $ locationChangeStart를 찾았습니다. 문제는 폼에서 뭔가를 수정 한 다음 다른 페이지로 이동 한 후에이 메서드가 트리거되지 않는다는 것입니다. 오직 window.onbeforeunload 만 호출됩니다. 내가 잘못
<form name="addEventForm"
method="POST" ng-controller="formController" confirm-on-exit>
...
</form>
:
여기.directive(
'confirmOnExit',
function() {
return {
link : function($scope, elem, attrs) {
$scope
.$on(
'$locationChangeStart',
function(event, next, current) {
if ($scope.addEventForm.$dirty) {
if (!confirm("The form is dirty, do you want to stay on the page?")) {
event.preventDefault();
}
}
});
window.onbeforeunload = function() {
if ($scope.addEventForm.$dirty) {
return "You have unsaved information!";
}
};
}
};
양식입니다 : 여기
는 지시인가?
피들링을 제공 할 수 있습니까? – Raghavendra
피들 또는 plunkr 함께 연주하는 것이 좋을 것입니다, 내 경우에는 내 코드에서, 나는 컨트롤러 및 작업 괜찮아요, 시도, 범위의 insteaad 범위 내에서 비교 해요, 사용 $ rootScope – Braulio
당신이 돈을 마지막 괄호를 놓치지 마라. –