JS how to continue event prevent default
I am trying to pop modal asking the user if he is sure about to leave the page,
while there changes that have not been commited yet.
Those changes are NOT done using a <form>
element, but just some changes
that were made on a specific object.
I have tried to detect when he tries to leave the page with either the $routeChangeStart
and the $routeChangeSuccess
like this:
$scope.$on('$routeChangeStart', function(event, current)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
// how to CONTINUE the prevent default??
);
The code above actually stop the propgregation and not let the user to leave
the page.
However - after confirmed the modal, I cannot find any way to continue the page moving.
I mean, I can prevent default but not continue default.
I have tried also to:
$location.path(PATH)
but this just did not work.
Also - even when user re-click about leaving the page again - the event preventdefault is still
prevented.
javascript angularjs angular-ui-router preventdefault
add a comment |
I am trying to pop modal asking the user if he is sure about to leave the page,
while there changes that have not been commited yet.
Those changes are NOT done using a <form>
element, but just some changes
that were made on a specific object.
I have tried to detect when he tries to leave the page with either the $routeChangeStart
and the $routeChangeSuccess
like this:
$scope.$on('$routeChangeStart', function(event, current)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
// how to CONTINUE the prevent default??
);
The code above actually stop the propgregation and not let the user to leave
the page.
However - after confirmed the modal, I cannot find any way to continue the page moving.
I mean, I can prevent default but not continue default.
I have tried also to:
$location.path(PATH)
but this just did not work.
Also - even when user re-click about leaving the page again - the event preventdefault is still
prevented.
javascript angularjs angular-ui-router preventdefault
add a comment |
I am trying to pop modal asking the user if he is sure about to leave the page,
while there changes that have not been commited yet.
Those changes are NOT done using a <form>
element, but just some changes
that were made on a specific object.
I have tried to detect when he tries to leave the page with either the $routeChangeStart
and the $routeChangeSuccess
like this:
$scope.$on('$routeChangeStart', function(event, current)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
// how to CONTINUE the prevent default??
);
The code above actually stop the propgregation and not let the user to leave
the page.
However - after confirmed the modal, I cannot find any way to continue the page moving.
I mean, I can prevent default but not continue default.
I have tried also to:
$location.path(PATH)
but this just did not work.
Also - even when user re-click about leaving the page again - the event preventdefault is still
prevented.
javascript angularjs angular-ui-router preventdefault
I am trying to pop modal asking the user if he is sure about to leave the page,
while there changes that have not been commited yet.
Those changes are NOT done using a <form>
element, but just some changes
that were made on a specific object.
I have tried to detect when he tries to leave the page with either the $routeChangeStart
and the $routeChangeSuccess
like this:
$scope.$on('$routeChangeStart', function(event, current)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
// how to CONTINUE the prevent default??
);
The code above actually stop the propgregation and not let the user to leave
the page.
However - after confirmed the modal, I cannot find any way to continue the page moving.
I mean, I can prevent default but not continue default.
I have tried also to:
$location.path(PATH)
but this just did not work.
Also - even when user re-click about leaving the page again - the event preventdefault is still
prevented.
javascript angularjs angular-ui-router preventdefault
javascript angularjs angular-ui-router preventdefault
edited Nov 11 '18 at 13:56
georgeawg
33.1k104968
33.1k104968
asked Nov 11 '18 at 13:31
RazRaz
250112
250112
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You could add a flag and a conditional:
Something like
$scope.allowChange = false;
$scope.$on('$routeChangeStart', function(event, current)
// don't do anything when allowChange === true
if (!$scope.allowChange)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
);
)
Great that works - so the event prevent default will always remain active, until the closureIF
of it is gettingfalse
? BTW, innext
I have this:http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?
– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also anext
argument that has the new path in it. Is outlined in routing docs
– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249233%2fjs-how-to-continue-event-prevent-default%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You could add a flag and a conditional:
Something like
$scope.allowChange = false;
$scope.$on('$routeChangeStart', function(event, current)
// don't do anything when allowChange === true
if (!$scope.allowChange)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
);
)
Great that works - so the event prevent default will always remain active, until the closureIF
of it is gettingfalse
? BTW, innext
I have this:http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?
– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also anext
argument that has the new path in it. Is outlined in routing docs
– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
add a comment |
You could add a flag and a conditional:
Something like
$scope.allowChange = false;
$scope.$on('$routeChangeStart', function(event, current)
// don't do anything when allowChange === true
if (!$scope.allowChange)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
);
)
Great that works - so the event prevent default will always remain active, until the closureIF
of it is gettingfalse
? BTW, innext
I have this:http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?
– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also anext
argument that has the new path in it. Is outlined in routing docs
– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
add a comment |
You could add a flag and a conditional:
Something like
$scope.allowChange = false;
$scope.$on('$routeChangeStart', function(event, current)
// don't do anything when allowChange === true
if (!$scope.allowChange)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
);
)
You could add a flag and a conditional:
Something like
$scope.allowChange = false;
$scope.$on('$routeChangeStart', function(event, current)
// don't do anything when allowChange === true
if (!$scope.allowChange)
event.preventDefault();
ConfirmationModal.fire("Do you sure?", response =>
if (response)
$scope.allowChange = true
$location.path(...) // I forget prop to get new path from
);
)
answered Nov 11 '18 at 13:43
charlietflcharlietfl
139k1388120
139k1388120
Great that works - so the event prevent default will always remain active, until the closureIF
of it is gettingfalse
? BTW, innext
I have this:http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?
– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also anext
argument that has the new path in it. Is outlined in routing docs
– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
add a comment |
Great that works - so the event prevent default will always remain active, until the closureIF
of it is gettingfalse
? BTW, innext
I have this:http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?
– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also anext
argument that has the new path in it. Is outlined in routing docs
– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
Great that works - so the event prevent default will always remain active, until the closure
IF
of it is getting false
? BTW, in next
I have this: http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?– Raz
Nov 11 '18 at 15:14
Great that works - so the event prevent default will always remain active, until the closure
IF
of it is getting false
? BTW, in next
I have this: http://localhost:8080/#!/root/settings/permissions
How to load the next view with this? should I parse only the path and extract it, or that is there anything else?– Raz
Nov 11 '18 at 15:14
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also a
next
argument that has the new path in it. Is outlined in routing docs– charlietfl
Nov 11 '18 at 15:19
As I commented I forget which object has the next path in it. If I remember correctly without going to the docs there is also a
next
argument that has the new path in it. Is outlined in routing docs– charlietfl
Nov 11 '18 at 15:19
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Yes, next provides with the full url
– Raz
Nov 11 '18 at 15:20
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try
$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Doesn't it also have the internal path as well as the full url? If not would be simple parse to get it from the full one or try
$location.url(fullUrl)
– charlietfl
Nov 11 '18 at 15:22
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
Nope. I am using ngRoute if it helps.
– Raz
Nov 11 '18 at 15:23
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53249233%2fjs-how-to-continue-event-prevent-default%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown