问题标签 [angular-component-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 回答
669 浏览

angularjs - 在不同模块中使用角度组件路由

为什么模块 2 显示在模块 1 中?

我们有一个包含多个模块的 Angular 应用程序。对于某些模块,我们希望使用组件路由器。我们不知道组件将在哪个页面 (url) 上加载。

当前情况: 在模块 1 内,正在显示模块 2 的模板。

期望的结果: 具有相对于组件的路径,以便 '...com/someUrlWhereModule1Lives#/step2' 加载模块 1 的第 2 步
'...com/someUrlWhereModule2Lives#/step2' 加载模块 2 的第 2 步

模块1.module.js

模块2.module.js

演示链接

如果需要更多信息,请告诉我。

0 投票
1 回答
529 浏览

angularjs - Angular 1.5 组件 $router 绑定

我正在尝试将 1.5x 项目切换到组件并使用新的组件路由器。我在如何以编程方式访问$router不在指令内的几个组件中遇到问题。基本上我有需要能够做的标题和侧边栏组件$router.navigvate,但是使用绑定:{$router: "<"}给了我一个未定义的$router.

我想我可能只需要稍微重构一下应用程序,但我不知道该怎么做。

目前在我的 Index.html 中,我在正文中定义了 ng-app,然后在该 ( <app></app>) 中定义了主应用程序模块。我的主要应用程序组件有一个模板,基本上是我的“母版页”。

所以app.html有一个<header>组件,<sidebar>组件,然后<ng-outlet>为主要内容。使用 UI-Router,我只是使用标题/侧边栏控制器中的 $state 服务来查找活动状态或导航到新状态。

使用 component-router 我无法弄清楚如何将 $router 放入 header/sidebar 控制器。

有任何想法吗?

0 投票
1 回答
121 浏览

javascript - ng-outlet 无法访问父 $scope

使用 Angular 的标准路由,我可以让子控制器访问父 $scope:

内部的任何子控制器ng-view都可以访问 ParentCtrl 数据,但是对于 Angular 1.5 组件路由器,情况似乎并非如此。上述标记的唯一区别是ng-view它的ng-outlet.

有谁知道如何在基于ng-outlet组件路由器的子控制器中访问父控制器信息?或者有没有其他方法可以访问父数据?

0 投票
0 回答
502 浏览

angular - Angular 2 rc 1 组件路由器未加载第二个组件

我的应用程序的组件路由

我已经设置了这样的路由。当用户浏览到 http://localhost:3000 时,如果尝试加载 Home 组件。但是如果用户没有登录,它会将用户重定向到登录组件。

到目前为止,它工作正常。没有任何问题。

一旦用户登录,它将用户重定向到主组件。

但是,当我尝试使用 URL http://localhost:3000/comp1加载/ comp1 时,它会查看第二级并尝试查找 /comp1 以及主页和登录组件,而不是在“主页组件”下并抛出错误找不到路线“/comp1”。

我知道这是一个模棱两可的问题。因为我的主页是'/'。但这很常见,即主组件位于应用程序的根级别,并且您不想在主组件的根 URL 中添加“/home”或“/main”。

任何建议如何使它工作?

0 投票
1 回答
233 浏览

javascript - Angular 1.5 组件路由器兄弟组件

Angular 1.5 的新组件路由器有没有办法保持在 ng-outlet 指令中呈现的兄弟组件?我想与兄弟列表视图并行显示详细信息视图。据我了解官方文档(https://docs.angularjs.org/guide/component-router)应该可以使用 $$router 并将其绑定到子组件。

这是我试图做的: http ://plnkr.co/edit/KzW8fLAxrte9jSg5jhEg?p=preview

关于这个绑定主题有类似的帖子:

Angular 1.5 组件 $router 绑定

0 投票
1 回答
461 浏览

angularjs - Angular 1 组件路由器查询参数

我正在使用 angular 1 和新的组件路由器。我有这样的 $routeConfig :

我想使用自定义查询参数导航到该组件。

导航后我得到这个 URL:localhost/list;name=1;prop1 问题是我有很多地方使用$location.search(),但是这种方法无法解析带有分号分隔值的 url。如何使这个新路由器生成旧式查询参数,例如:

localhost/list?name=1&prop1

0 投票
1 回答
2910 浏览

angularjs - 组件导航路线

如何从当前组件导航到另一个组件?我试过这样:

帐户组件:

这对我不起作用:(

我已经设置了 $routerRootComponent

plnkr

0 投票
1 回答
1017 浏览

angularjs - Angular 1.5 组件路由器 $canActivate:在没有数据的情况下访问下一个路由并重新路由

我实际上有 $canActivate 的三个问题(另请查看下面的代码以更好地理解这些问题):

  1. 单击时,<a ng-link="['MachineDetails', { id: 'c6bd76947fc0' }]</a>我无法从 $canActivate 访问 id(url 和路由尚未更改,因此无法通过注入 $location 或注入 $rootRouter 获取它)
  2. 我想不出一种将数据从 $canActivate 传递到控制器的方法。
  3. 我无法从 $canActivate 重新路由(通过使用 $rootRouter.navigate())。

    上面的代码是我用 ES6 编写的组件定义。

0 投票
0 回答
157 浏览

javascript - 具有角度组件路由器的不同布局

我想用组件路由器构建一个角度应用程序。此应用程序由两种不同的布局组成。一个是登录屏幕,有两个字段,一个按钮,没有别的。另一种是带有标题、侧边栏和内容的主要布局。内容区域根据路线而变化。

这是我的组件树: 组件树

这也是一个plnkr:链接

这就是我定义登录和主路由的方式:

现在,我现在使用的方法有两个主要问题。

首先,使用 ng-link 时,我的 Main 组件中的所有链接都用双斜杠解析。我认为这可能会导致某些浏览器出现问题。

其次,由于我的导航组件不是路由组件,而是一个单独的组件,因此我无法访问 $route。因此,我必须注入 $rootRouter。现在,当我使用它的 isRouteActive 函数时,它总是返回 true。这意味着,我所有的导航链接都将获得活动类。

0 投票
2 回答
672 浏览

angularjs - Angular 1.5 父子组件问题

我正在使用 Angular 1.5 组件路由器,并且无法在父组件中获取范围变量以在子组件中访问。我在这里创建了一个plunker 来说明这个问题。我用这个视图创建了一个父组件:

注意父组件视图中的“搜索”变量。我希望子组件可以访问它,但它对我不起作用。我已经看到了一些示例,这些示例显示子组件在父组件中被直接引用,如下所示:

但是,这不是违背了 ng-outlet 的目的吗?我认为我不应该像这样手动将参数传递给子组件吗?这样做的正确方法是什么?