问题标签 [angular-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1916 浏览

javascript - AngularJS:转发到登录页面进行身份验证,保留路由作为 GET 参数?

我是一个 Angular 新手。我正在尝试在任何页面上编写一个 Angular 服务,它将检查用户是否已登录,如果没有,则将它们转发到登录页面,并将其当前路径作为 GET 参数传递

我快到了,但它不是很有效。我遇到的问题如下:如果用户去#/articles/my-articles/,他们会被转发到#/login/?next=%2Farticles%2F:module%2F

换句话说,看起来 Angular 传递的是路由模式,而不是实际的 URL。

这是我的验证码:

我可以使用 hacky 方式获得原始路径current.params.module- 但这对我没有帮助,因为它似乎routeChangeStart被触发了几次,并且current除了最后一次火灾之外,对象在所有情况下都是未定义的。

这是我的路线文件:

我该如何解决这个问题?

0 投票
2 回答
2503 浏览

javascript - 没有模板的 Angular 简单路由

我正在寻找 Angular 如何处理路线的简单解决方案。

我有由服务器生成的页面,带有简单的谷歌地图和小逻辑,位于 3 个独立的控制器中。

现在我想在其中挂钩路由。只是简单的路由。当我使用地图移动并获得新的坐标时,我想将它们作为参数“?position = 10.11,50.23”推送到当前网址中。我想将历史推送状态与 hashbang 备份一起使用。

在应用程序的其他部分,我想听听这个参数的变化(可能是一些 $watch?)。我想使用相同的代码来检测首先加载页面时要使用的更改。

我在之前的项目中使用了 CanJS,这绝对是简单的,但是在 Angular 中我不能让小步来纠正结果:)

PS:这只是最小用例的一部分。

谢谢

0 投票
1 回答
179 浏览

angularjs - AngularJS - routing between views with function doesnt work

I have switched to angularJS framework and I have some issues with routing.

This is home.html view

And this is home.js home controller

Can anyone tell me why this doesnt work? Also, it would be good if someone can explain me how to pass variable's from home view to mealList view after this navigateTo() function is called.

0 投票
1 回答
2277 浏览

angularjs - angularjs:如何在路由更改之前进行身份验证

如何在 angularjs 应用程序中的路由更改之前等待身份验证完成。

我正在使用 angularfire 简单身份验证。

我的笨蛋在这里

您可以使用example@gmail.comexample作为凭据来测试 plunker 。

我知道问题的原因。但不知道如何解决...

实际上,当经过身份验证的用户转到 ' #/home/时,在sahyiApp.run(function(){ ...})函数中会检查条件if(next.authRequired && !$rootScope.user){ ... } . 实际上,经过身份验证的用户可以通过此检查,但是此代码在实际身份验证发生之前运行.. 那么有没有办法在路由更改之前进行身份验证...

0 投票
1 回答
2488 浏览

javascript - 避免使用 ng-route 路由无哈希 URL

说,我正在浏览localhost/index.html#/view1,并且我有一个指向 的链接localhost/index.html。当我单击它时,通过它的 ng-route 模块对其进行角度处理,它属于我的重定向子句。

这是路线配置的摘录:

我可以使用 ng-click,然后使用 location.href 以 javascript 方式重定向,但这不是一个理想的解决方案,因为我会丢失 href 链接(SEO、书签、标签)。

tl;博士

如何告诉 angularJs ng-route 不要处理没有 hash 的 url?

编辑:我不使用 html5 模式,也不打算使用它。

0 投票
3 回答
10174 浏览

angularjs - 如果用户未通过身份验证,则重定向到路由

如果用户未登录,我正在尝试干净地实现一种将用户重定向到登录路由的方法。我的解决方案基于此处的另一个 SO 答案,该答案不能开箱即用。这是我的解决方案。

我的问题是,我在哪里可以监听$routeChangeError事件以便重定向路由?我尝试在指令中执行此操作,但永远无法触发事件。我不能将它放入控制器中,因为如果承诺被拒绝,它将不会加载。有什么想法吗?

0 投票
1 回答
10540 浏览

javascript - Load external page inside ng-view with AngularJs in an SPA application

Is there a way of insert an external web page inside angularjs ng-view. For example when I press a link with ng-route in my example I want that a external page load inside my own web page.

In this example, I wish that when I click external, another page should be loaded. I have tried with ng-include and doesn't work.

http://plnkr.co/edit/vkAvZ2hGUjHlfHy0ul1z

Thanks for your help.

0 投票
1 回答
2467 浏览

angularjs - $routeProvider 不适用于 html5Mode

我刚开始学习angularJs,并试图用角度路由服务配置部分页面。

它适用于哈希格式,但是,当我试图摆脱哈希时,routeProvider 停止工作。

JS

HTML

有人可以启发我吗?

0 投票
0 回答
273 浏览

javascript - AngularJS v1.2.6 路由不起作用

我见过许多看起来像我的不同问题,但我的问题是不同的。我设置了以下路线。

和控制器如下:

我在控制台上得到以下信息:

看起来 HomeCtrl 已加载,但问题是它views/home.html从未显示在屏幕上。视图永远不会改变,但控制器会改变。任何想法上面的代码可能有什么问题?

更多背景信息:我正在开发一个 Cordova + AngularJS 应用程序。上面的代码是在 Android 4.2.3 stock chromium web view 上测试的。

编辑 1:现在测试Chrome v31.0.1650它在桌面上也不起作用。我想知道这是否是附加到AngularJS v1.2.6.

编辑 2:将 AngularJS 降级到 v1.2.4 或之前的版本可以解决问题。显然,与 AngularJS 有一些关系,上面的代码似乎还不错?

0 投票
0 回答
591 浏览

angularjs - 路由时更新 HTML 标签上的 ng-class

我正在使用 AngularJS 编写一个 Chrome 扩展程序。UI 通过浏览器操作弹出窗口提供服务,随着内容的变化,我有时需要更改弹出窗口的大小。我能够做到这一点的唯一方法是通过类的条件更新来更改 HTML 和 BODY 标签上的 CSS 大小属性,即

我在一个设置“doExpand”的控件上单击了一下,效果很好。但是,我现在正在更新应用程序以使用路由来显示多个视图。在这样做时,我正在删除内联控制器声明......

...并在路由配置中定义它:

路由正在工作,但问题是 HTML 标记现在超出了控制器的范围,因为它现在在视图本身上。我可以在我想的视图中粘贴 BODY 标记,但不能对 HTML 标记执行相同操作,因为 JS 包含需要在头部等(以及其他原因)

有人可以就如何处理这种情况给我建议吗?谢谢!