$ scope。$ on $ locationChangeStart保留URL但显示新视图

时间:2018-10-05 22:17:58

标签: angularjs angularjs-scope

我在使以下代码段正常工作时遇到问题。这是嵌入在较大的应用程序中的,但问题是运行了以下代码(我已经检查过),并且可以防止URL更改,但是即使我不确定,也会显示新路径的视图。因此,即使URL保持不变,我也不能停留在同一页面上。我是否缺少执行此操作所需的一段代码?

$scope.$on("$locationChangeStart", function(event) {
    if (!confirm("You have unsaved changes. Are you sure you want to leave this page without saving?")) {
        event.preventDefault();
    }
});

1 个答案:

答案 0 :(得分:0)

您必须在<html> <head> <script type="text/javascript"> function test() { if(document.getElementById("nombre").value.length() < 2){ alert("Error"); return 1; } else if(!document.getElementById("edad").value.isInteger()){ alert("Error"); return 1; } else if(!document.getElementById("email").value.includes("@")){ alert("Error"); return 1; } else{ document.getElementById("formulario").submit(); } } </script> </head> <body> <form id="formulario"action = "https://postman-echo.com/get" method = GET type=text> Nombre:&nbsp; <input id="nombre" type="text"/> <br><br> Edad:&nbsp; <input id="edad" type="text"/> <br><br> E-mail:&nbsp; <input id="email" type="text"/> </form> <button onclick= "test()">Enviar formulario</button> </body> </html> 上致电event.preventDefault();:停止导航,当用户$locationChangeStart时,然后重定向。

confirm

您可以在Cacelling route navigation

中查看更多内容