问题标签 [angularjs-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 投票
1 回答
1413 浏览

javascript - AngularJS:从路线弹出对话框?

我有一个使用 AngularJS 的管理 CRUD 界面。一切都很好,除了一个问题:我想要一个用于编辑/创建项目的弹出对话框,我无法做出不替换整个 ng-view 的路线。它是如何完成的,有可能吗?如果没有,那么我可以以某种方式定义跑步路线的替代方式吗?

0 投票
3 回答
30120 浏览

angularjs - angularjs路由单元测试

正如我们在http://docs.angularjs.org/tutorial/step_07中看到的,

路由测试建议使用e2e测试,

但是,我认为“$routeProvider”配置是使用单个函数 function($routeProvider) 完成的,我们应该能够在不涉及浏览器的情况下进行单元测试,因为我认为路由功能不需要浏览器 DOM。

例如,
当 url 为 /foo 时,templateUrl 必须为 /partials/foo.html 且控制器为 FooCtrl
当 url 为 /bar 时,templateUrl 必须为 /partials/bar.html 且控制器为 BarCtrl

它是一个简单的功能IMO,它也应该在一个简单的测试,一个单元测试中进行测试。

我用谷歌搜索并搜索了这个 $routeProvider 单元测试,但还没有运气。

我想我可能会从这里借一些代码,但还不能,https://github.com/angular/angular.js/blob/master/test/ng/routeSpec.js

0 投票
1 回答
1048 浏览

ajax - 一个站点有多个 AngularJS 应用程序?

我正在开发一个可以分解为几个主要页面的网站。这些页面可以被认为是彼此隔离的,除了它们共享会话数据(即会话 ID 和登录用户名)。

最初,我打算使用 ng-view 将站点构建为 SPA(即,将页面变成 AngularJS 视图)。但是,我认为以这种方式实施我的网站没有任何好处。并且它需要额外的时间和努力才能使其支持 SEO(使 AJAX 应用程序可抓取)。

采用一种不会带来任何好处甚至会产生额外工作量的方法似乎不太聪明。所以我想,我为什么不把我网站的主页做成单独的AngularJS应用程序。需要被搜索引擎索引的网站部分只是其中一些应用程序的初始屏幕,所以我不需要为 SEO 做额外的工作。(注意:初始屏幕由 Django 服务器呈现,带有供搜索引擎抓取的数据,因此它们是非空白的。)

对于每个应用程序,它可能有也可能没有自己的一组部分,这取决于它的要求。

例子:

这只是我的随机想法,我还没有看到任何由多个 AngularJS 应用程序组成的 AngularJS 示例。我想知道:

  1. 一个站点方法的多个 AngularJS 应用程序是否可行?我应该注意哪些注意事项?野外有没有采用这种方法的示例站点?
  2. 如果可行,我如何在应用程序之间共享会话数据?

请注意,这篇文章是关于一个站点的多个 AngularJS 应用程序,而不是同一页面上的多个 AngularJS 应用程序。

0 投票
2 回答
11507 浏览

angularjs - Angular - 不同的路线,相同的模板/控制器,不同的加载方法

我想使用路由,但我总是想使用相同的模板和控制器。我有这样的路线:

在第一种情况下,我想加载图像数组并将它们添加到列表中。在第二种情况下,我想加载单个图像并将其添加到列表中。

所以区别仅在于数据加载。最有效的方法是什么?

也可以为 ng-show 制作动画吗?像jQuery的slideDown这样的东西?

0 投票
4 回答
30010 浏览

angularjs - AngularJS:具有路由的多个视图而不会丢失范围

我正在尝试实现一个经典的列表/详细信息 UI。单击列表中的项目时,我想显示该项目的编辑表单,同时仍显示列表。我正在尝试解决 Angular 的 1-view-per-page 限制,并决定通过将所有 URL 路由到同一个控制器/视图来做到这一点。(也许这是我问题的根源,我对替代方案持开放态度。)

路由:

视图(/Partials/Users.html):

控制器:

问题:

  1. 单击编辑链接时,控制器会使用新范围重新实例化,因此我必须重新初始化用户列表。(在一个更复杂的示例中,我可以将来自用户的输入存储到模型中,这也会丢失。)我更愿意保留前一个路由的范围。
  2. 我更喜欢使用单独的控制器(或者,正如许多其他 Angular 开发人员所抱怨的那样,拥有多个显示视图的能力!)但这会导致同样的问题,即失去范围。
0 投票
0 回答
178 浏览

architecture - 在杂志阅读器应用程序中使用 AngularJS 的方法

我正在学习 AngularJS 来制作这样的应用程序

示例站点使用一期杂志的全局 JS 对象来管理它的页面,并使用点击处理程序来处理页面切换和其他操作。此外,页内效果是通过直接调用 JS 代码来触发的。

但是,在 AngularJS 中实现这一点时,我对架构可能如何......
目前我只有一个IssueDetailController响应'/:issueId/:pageNumber':在控制器内部,页面内容被注入到 DOM 中,例如$compile(page_content)(new_scope_for_page_content). 我感觉这不是正确的方法。

所以我的问题是,什么是明智的架构,包括:

  • 控制器/视图的结构(我是否需要两个单独的控制器来处理页面和问题。例如)
  • 页面转换(我不知道在什么时候可以应用ng-animate自定义指令(例如包装这个 jQuery 插件),因为整个控制器/视图对我来说仍然是模糊的。)

,对于像示例一个这样的应用程序,一般来说?感谢您的提示=)

0 投票
1 回答
559 浏览

angularjs - AngularJS内存泄漏与ng-switch?有人可以解决这个问题吗?

我已经为 angularjs 构建了一个自定义路由方法,并使用它来控制我的应用程序中的 ng-switch 以创建多级深度链接。

http://plnkr.co/edit/beAm3WRomMafKzx1SoSZ?p=preview

我无法弄清楚为什么当您在共享下的社交和联系人选项卡之间切换时内存不断增加。另外,如果您查看 baterang(chrome 的 angularjs 插件),为什么当您关闭联系人选项卡时,范围不会变小?联系人控制器已被销毁,但 baterang 显示联系人仍在范围内。

谢谢你的帮助。

0 投票
1 回答
466 浏览

angularjs - 如何使 angular-ui 引导手风琴组在 html5mode 中工作

如果我在我的配置模块中将 html5mode 启用为 true,则打开手风琴组的“超链接”会将 url 重新路由回基本 url。不仅手风琴组不打开,而且您被重新路由。当未启用 html5mode 时,我的手风琴组工作正常。

是否有一个简单的解决方法,或者我将不得不深入研究 angularjs-ui 源代码?还是我只是对 html5mode 不走运?我的手风琴代码非常简单:

0 投票
1 回答
1254 浏览

angularjs - angularjs:选项卡式视图设计问题

[编辑]

与部分和模板的复杂嵌套类似的问题

到目前为止,使用 Angular-UI 状态解决方案更好还是我应该坚持使用 ng-includes ?


到目前为止,我的 AngularJS 应用程序中的每个 URL 都有一个视图。我需要构建一个新视图,它应该有 3 个选项卡,我在试图弄清楚我将如何设计视图时遇到了麻烦——即架构方面的问题。

请注意,这 3 个选项卡后面的业务模型对象是同一个。

第一个选项卡用于查看和编辑业务对象上的数据。所以这已经是第一个选项卡中的两个“视图”。

第二个选项卡用于查看显示来自业务对象的子集合的数据的分页表。

第三个选项卡与第二个选项卡执行相同的操作,但用于另一个子集合。

显然,我不想一次加载整个业务对象。只有当用户导航到第二个或第三个选项卡时,我才会加载集合。

我现在主要关心的是如何组织视图?AngularJS 有这个限制,每页只有 1 个视图。

另外,我需要处理浏览器历史记录,因此选择选项卡时必须更改URL,但是我必须重新加载任何数据(即我不得重新加载控制器)。

任何提示将不胜感激。

0 投票
1 回答
465 浏览

angularjs - angularjs路由捕获superfish菜单的锚元素

我正在尝试将 angularjs 与路由结合使用 superfish 菜单。我的 Web 应用程序是一个 MVC 应用程序,我使用 superfish 菜单在我的 Web 应用程序中导航。superfish 菜单包含允许我导航到 MVC 应用程序的其他视图的链接。

其中一个视图是带有路由的角度应用程序。但是在加载这个角度应用程序之后,我的超级鱼菜单都不再工作了,因为角度拦截了它们并认为它应该由角度路由处理。

有没有办法让 angularjs 忽略我的超级鱼菜单上的锚链接?我无法将完整的 MVC 应用程序重构为 SPA(太大而无法立即转换),因为我正在逐渐将 Angular 引入这个 MVC 应用程序。

我已经尝试在文档中找到每个锚 target="_self" ,但是在某些情况下,它们仍然被 angular 捕获(可能是因为某些超级鱼菜单项仅包含 href 的“#”(它们是包含的父菜单子菜单)