Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs AngujarJS-ngRoute/ngView-叠层视图_Angularjs_Cordova - Fatal编程技术网

Angularjs AngujarJS-ngRoute/ngView-叠层视图

Angularjs AngujarJS-ngRoute/ngView-叠层视图,angularjs,cordova,Angularjs,Cordova,我是Angular的新手,这是我第一次使用ng view指令。我正在开发一个Phonegap应用程序,我注意到,在单击多个连续链接时,会执行以下操作: $location.path('/somePath') //this is illustrative - path depends on link clicked 新加载的视图已堆叠。这意味着:如果我遵循N个链接(或N次调用$location.path),我必须在android设备中单击后退箭头N+1次才能离开程序。虽然我不希望出现这种行为(我

我是Angular的新手,这是我第一次使用ng view指令。我正在开发一个Phonegap应用程序,我注意到,在单击多个连续链接时,会执行以下操作:

$location.path('/somePath') //this is illustrative - path depends on link clicked
新加载的视图已堆叠。这意味着:如果我遵循N个链接(或N次调用
$location.path
),我必须在android设备中单击后退箭头N+1次才能离开程序。虽然我不希望出现这种行为(我在这里是n00b),但在我的应用程序所需的基本用户体验中看起来不错(它与历史堆栈有关吗?)-但我还有一个“转到主菜单”按钮,我希望该按钮“清除此类堆栈”,回滚到第一个屏幕

为什么我需要它?因为我在我的应用程序中来回导航(目前我的“转到主菜单”按钮有
$location.path(“/”)
,它再次堆叠主菜单视图),当我试图使用后退箭头按钮关闭我的应用程序时,我不得不多次按下该按钮,这让人恼火


那么:单击主菜单按钮时如何清除堆栈?(而不是执行
$location.path(“/”)

如果您正在构建phonegap应用程序,那么我假设实际URL对您不重要?您可能希望查看ui路由器模块,而不是ng route,因为它更关注状态,而不是简单的路由。您可以轻松地在状态之间移动或从状态之间移动,必要时进行转换,而无需更改$location(避免您的问题)。此外,ui路由器支持命名视图和嵌套视图,所以如果适合您的项目,您可以将模板拆分为更小的部分

很抱歉,这不是对您的问题的直接回答,但听起来ui路由器是一个更好的工具,适合您尝试做的事情


我必须在创纪录的时间内解决这个问题。如何使用ui路由器从视图中弹出所有状态?如果用户体验浏览了很多次,想要单击“返回”退出,并且发现必须多次单击按钮,那么用户体验将非常糟糕。ui路由器在这方面有什么不同?更改$location.path就像导航到新页面一样。它将其放入浏览器历史记录中,就像导航常规链接一样,而“后退”按钮将返回一个链接。ui路由器解决这一问题的方法是允许您更改状态,而无需更改路径(或浏览器历史记录)。如果你的应用程序需要支持深度链接,那么就没有真正的解决方法,因为你需要更改浏览器的url。