问题标签 [angular-ui-router]

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 回答
5400 浏览

javascript - 在 ui-router 状态之间发送事件

我有一个 AngularJS 应用程序,其中视图将$broadcast发生“上下文更改”事件,以告知其子级(ng-include带有控制器和指令的 s,都带有它们的子范围)父视图中发生的事情。现在我正在使用ui-router重构它,这样就会有一个父状态(非抽象)和子状态。

父级仍然很高兴地$broadcast处理它的“上下文改变”事件,但子状态永远不会得到它们。这并不完全让我感到惊讶,因为ui-router没有继承范围,但这对我来说仍然是一个问题。对于国家之间的这种沟通,什么是好的模式?我们可以利用我试图连接的州之间存在现有父子关系的事实吗?我可以使用服务,那么服务$broadcast事件如何(作为$broadcast范围方法并且服务没有特定范围)。

我试过打电话$rootScope.$broadcast(而不是$scope.$broadcast)无济于事。我只是不确定这是否$rootScope是一个共享范围,或者我实际上期望它只是一个通用定义(如类继承)。


我开始更好地理解调用的后果$rootScope.$broadcast。它将通知世界。我进行了一些检查event.targetScope(可能是为了确保控制器不会通知自己)。现在我删除了检查我收到的消息,但不幸的是它们太多(来自层次结构中完全不同位置的控制器)。我只希望父母通知它的孩子。当我使用它时ng-include,这意味着父范围与子范围。现在我正在使用ui-router我希望它可以与父状态(控制器)和子状态(控制器)一起使用,但我不知道该怎么做

0 投票
0 回答
155 浏览

angularjs - 如果调用 $state.transitionTo,则 browser().navigateTo 挂起

如果我在控制器的设置中调用 $state.transitionTo(),例如规范化 URL,如果操作更改 URL 的本地状态,这会导致 browser().navigateTo() 永久挂起。

也就是说,假设我有一个具有有效状态的 URL 架构,例如: /graphs/:graph_id /graphs/:graph_id/help

我正在导航到 /graphs/17。

如果控制器将其更改为 /graphs/42,则 angular-scenario 挂起。(或者,具体来说,业力-ng-scenario 挂起,以防万一。)

如果将其更改为 /graphs/17/help,则测试成功运行(/help 只是添加了一个覆盖)。

我是否在做 URL 规范化错误,这是角度场景中的真正错误,还是什么?

0 投票
2 回答
48113 浏览

angularjs - ui-router 使用动态参数解析

这可能很简单,但我在文档中找不到任何内容,谷歌搜索也没有帮助。我正在尝试定义一种状态,$stateProvider其中我需要在服务器上点击以提取所需数据的 URL 取决于状态 URL 参数。简而言之,类似于:

以上不起作用。我尝试注入$routeParams以获取所需的cat参数,但没有运气。这样做的正确方法是什么?

0 投票
0 回答
83 浏览

javascript - $stateProvider 中是否可能存在某种基于规则的状态?

我正在将 AngularJS 应用程序从 转换ng-viewui-view,从而从$routeProvider转换为$stateProvider

$routeProvider曾经有大约。100when个条目。对于大约 20 个左右的域实体,会有类似的条目,例如:

  1. 显示实体列表
  2. 显示为其他实体过滤的实体列表
  3. 添加新实体
  4. 添加一个新实体作为其他实体的子实体
  5. 编辑/查看现有实体

请注意,1. 和 2. 将具有相同的视图/控制器。此外,3.、4. 和 5. 将具有相同的视图/控制器。

换句话说,高度结构化,也是我分配 URL 的方式。而且我之前有过关于编码逻辑的想法,而不是列出所有可能的排列。

$stateProvider我的目标之一是嵌入视图,例如,您可以轻松地从列表中添加实体(组合 1./2. 和 4.)或从父实体添加子实体(组合 5. 和 4. ).

因为我必须为所有这些添加状态,所以我看到未来可能的排列数量会爆炸式增长。对于遵循我定义的严格规则(并且可以在需要时重新定义)的那些 URL,是否有任何已知的策略来“修复”这个问题?在最坏的情况下,我可以生成排列,但也许我可以以某种方式教授$stateProvider规则是什么。

非常感激。

0 投票
1 回答
836 浏览

angularjs - ui-router 中的嵌套视图

我正在使用 angularjs 中的一些嵌套状态,并且一切顺利,直到 URL 的一部分是动态的。

这很好用

但是当涉及到扩展 company.view 时,因为它有一个动态参数,所以它失败了。

如果我从 company 而不是 company.view 扩展用户,则会显示嵌套视图,但如果我从 company.view 扩展,则仅显示主要内容,而不显示嵌套视图。

对于 company/index.html 我有:

对于 user/index.html 我有:

假设所有其他 html 都一样简单

我使用的网址是:

/公司 [作品]

/company/92 [作品]

/company/92/user [没办法]

我应该怎么做才能使这项工作与动态参数一起工作?

0 投票
2 回答
8115 浏览

angularjs - Angular-Ui-Router,嵌套命名视图 - 我做错了什么?

我正在尝试使用 ui-router 使用嵌套命名视图来实现一个非常简单的示例,但我无法让它工作。如果有人可以查看这个 jsFiddle - http://jsfiddle.net/thardy/eD3MU/ - 并告诉我我做错了什么,我将不胜感激。

基本思想是这样的: - 我的 index.html 有一个 ui-view - 插入的模板有两个名为 ui-views - 我正在尝试设置配置以使用模板填充这两个 ui-view我无法让它工作

这是小提琴的核心(模板中的尖括号替换为[]):

我已经调整了几个小时(尝试绝对名称等),我快要发疯了。根据文档(至少对我来说)看起来不错,但是没有任何简单的示例,而且我一定遗漏了一些明显的东西。

更新 通过从测试状态中删除 url 并将 url: '' 添加到 test.subs 状态,它可以工作。但是添加任何 url 来测试状态会导致它再次失败。在我的现实世界场景中,这些状态都不是根,并且在父状态中根本没有 url 会导致事情无法正常工作。这就像那个状态没有被激活或什么的。根据文档,在 sub 中有 url: '' 应该会导致它与它的父状态一起被激活,但这不是正在发生的事情。

更新 - 任何想看的人的解决方案 - http://jsfiddle.net/thardy/eD3MU/

0 投票
6 回答
97337 浏览

javascript - 如何使用 AngularJS 的 ui-router 提取查询参数?

如何使用AngularJS的 ui-router提取查询参数?

在 AngularJS 自己的$location服务中,我做了:

($location.search()).uid

从 URL 中提取参数 uid。ui-router对应的代码是什么?

0 投票
3 回答
4806 浏览

angularjs - 如何使用 Angular ui-router 处理长动态 url?

我正在为 REST 服务构建前端应用程序,大部分资源都位于长 url,其中大部分段是基于用户在应用程序中创建的记录的动态。显然,我将无法知道或创建大多数这些记录的硬编码路线。

我想我的问题是如何使用 ui-router 处理这样的网址:

<semester>/<program>/<class>/enrollment

或者

<semester>/myclasses/<class>/assignments

每个资源 url 中始终至少有一个静态的、可预测的段,并且这些段始终处于可预测的顺序。

我是否为 url 中的每个段创建抽象状态,例如:

??

我尝试过构建如下所示的路线:

但是当我链接到“参数”状态时,它最终将我送回了.otherwise()状态。

感谢您的帮助,我有点难过。

0 投票
2 回答
6314 浏览

javascript - Angular UI Router - nested routes does not work on templates with nested state

Here is my code:

When i click on link, in ui-view appeared template and controller of parent state. AngularJS version is 1.2.0-rc.2

0 投票
3 回答
5503 浏览

angularjs - 在带有requirejs的ui-router angularjs中找不到路由器错误

我已经为 angularjs 包含了 ui-router.js 。但不知何故,我没有让它与 requirejs 一起工作。

现在我的 app.coffee 是

控制台在 chrome 中给出错误

在火狐中。为什么我不能使用 ui-router 作为我的模块来将其加载到我的模块中用于 route.coffee ?