Angularjs 将Angular.js与ui路由器和未保存更改的指令一起使用,在选择保留和保存时会丢失字段数据
我打电话给我的出口确认指令,检查表格是否脏了。我使用的是一个模式,它为用户提供了保留、保存或离开表单的选项。问题是,当我选择保留并保存时,字段数据丢失。我正在寻找另一种方法来警告未保存的更改,而不使用event.preventDefault()并实际保存字段数据Angularjs 将Angular.js与ui路由器和未保存更改的指令一起使用,在选择保留和保存时会丢失字段数据,angularjs,modal-dialog,angular-ui-router,Angularjs,Modal Dialog,Angular Ui Router,我打电话给我的出口确认指令,检查表格是否脏了。我使用的是一个模式,它为用户提供了保留、保存或离开表单的选项。问题是,当我选择保留并保存时,字段数据丢失。我正在寻找另一种方法来警告未保存的更改,而不使用event.preventDefault()并实际保存字段数据 <form class="form-inline" role="form" name="AddScacTask" novalidate confirm-on-exit> app.directive('confirmOnEx
<form class="form-inline" role="form" name="AddScacTask" novalidate confirm-on-exit>
app.directive('confirmOnExit', ['modalService', '$rootScope', '$stateParams', '$state', function (modalService, $rootScope, $stateParms, $state) {
return {
restrict: 'A',
link: function (scope, elem, attrs, formCtrl) {
onRouteChangeOff = $rootScope.$on('$stateChangeStart', routeChange);
function routeChange(event, newState, newParams, fromState, fromParams) {
if (!scope.AddScacTask.$dirty) {
return;
}
var modalOptions = {
closeButtonText: 'No, I\'ll stay and save them.',
actionButtonText: 'Yes, Leave and Ignore Changes',
headerText: 'Unsaved Changes',
bodyText: 'You have unsaved changes. Do you want to leave the page?'
};
modalService.showModal({}, modalOptions).then(function (result) {
if (result) {
onRouteChangeOff(); //Stop listening for location changes
$state.transitionTo(newState); //Go to page they're interested in
} else {
$state.transitionTo(fromState); //Stay on the page and have tab revert to fromState
}
});
return;
}
}
};
app.directive('confirmOnExit'、['modalService'、'$rootScope'、'$stateParms'、'$state',函数(modalService、$rootScope、$stateParms、$state){
返回{
限制:“A”,
链接:函数(范围、元素、属性、formCtrl){
onRouteChangeOff=$rootScope.$on(“$stateChangeStart”,routeChange);
函数routeChange(事件、newState、newParams、fromState、fromParams){
如果(!scope.AddScacTask.$dirty){
回来
}
var modalOptions={
closeButtonText:“不,我会留下来救他们。”,
actionButtonText:'是,保留并忽略更改',
标题文字:“未保存的更改”,
bodyText:“您有未保存的更改。是否要离开该页?”
};
showModal({},modalOptions).then(函数(结果){
如果(结果){
onRouteChangeOff();//停止侦听位置更改
$state.transitiono(newState);//转到他们感兴趣的页面
}否则{
$state.transitiono(fromState);//停留在页面上,让选项卡还原为fromState
}
});
回来
}
}
};
}])) 我已经删除了event.preventDefault();对于一个不同的问题,这是绝对必要的