我不知道什么是这三个不同,与其相应的$locationChangeSuccess
,$routeChangeSuccess
和$stateChangeSuccess
。
$ locationChangeStart:
这使用$location
提供程序并在URL更改时广播。位置更多是指特定URL的路径。它更像普通的JavaScript,您可以更改到应用程序中的任何路径,并且在应用程序中将其定义为路由还是状态都没有关系。
$ routeChangeStart:
这使用$route
提供程序,并且与broadcasts
更改路由时使用的提供程序相同(与一起使用的默认Angular路由器ngRoute
)。这用于在控制器和视图之间建立链接。
$ stateChangeStart: 它在您的状态更改时发生,并且在过渡开始时广播。ui-
router使用它提供了routeprovider的不同(更高级)实现。使用状态,您可以映射和访问有关不同状态的不同信息,并且可以通过轻松在状态之间传递信息$stateParams
。
它们非常相似,实际上它们共享相同的名称,但是主要区别取决于应用程序使用的路由。如果您使用角度路由器,则坚持使用路由,但是,如果您使用ui-
router,则坚持使用状态。这是我可以给您的实用建议。
问题内容: 我的问题实际上与在这里发现的问题非常相似: AngularJs-取消路线更改事件 简而言之,我正在使用$ routeChangeStart并尝试使用$location更改当前路由。完成后,控制台会显示原始页面仍在加载中,并很快被新页面覆盖。 提供的解决方案是使用$ locationChangeStart而不是$routeChangeStart,这应该可以防止额外的重定向。不幸的是,我在
问题内容: 和之间有什么区别? 它们都是与相关的未记录事件。 问题答案: 在当AngularJS开始更新浏览器的位置基于突变通过完成烧制服务(,)。 应用程序可能会监听该事件并对其进行调用,这可能会发生。在这种情况下,第二个事件()将不会广播。 简而言之:位置更新时触发。如果未阻止第一个操作,则执行此操作。 源代码的相关位在此处:https : //github.com/angular/angul
问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子:
问题内容: 因此,我有一段简单的代码可以打印出整数1-10: 然后,如果仅在第3行上更改一个运算符,它将打印出无限数量的1整数(我知道为什么会这样做)。为什么在运行第二个程序时没有出现语法错误?如果赋值运算符后面跟着一个加法运算符,它不会调用语法错误吗? 问题答案: 与相同, 只是意味着。
问题内容: 有人可以解释一下 和 我不知道“确切”的含义 问题答案: 在这个例子中,什么都没有。当您具有多个具有相似名称的路径时,该参数将起作用: 例如,假设我们有一个显示用户列表的组件。我们还有一个用于创建用户的组件。的网址应嵌套在下。因此,我们的设置可能如下所示: 现在,这里的问题是,当我们转到路由器时,将通过所有定义的路由,并返回它找到的第一个匹配项。因此,在这种情况下,它将首先找到路线,然