问题标签 [ngcomponentrouter]

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

angularjs - AngularJS 1.5 ngComponentRouter

The ngNewRouter (now named ngComponentRouter) was supposed to be in 1.4, but was delayed and is now supposed to go into 1.5 (as I understand it). However, it's not in the 1.5 beta2 package. I do see angular1_router on github, but I don't see that built module included in the 2.0 alpha packages either.

  1. Does anyone know if the new router will actually be in the 1.5 release?
  2. Is there a current build of the new router hosted anywhere? I managed to find a copy of the compiled js from a random plunker, but haven't been able to compile the source myself (issues with node-gyp & msbuild, still working on that).
  3. Does anyone know of any up-to-date documentation or working samples on the new component router? The best site I've found so far is pretty close (it says it was published in February, but it uses ngComponentRouter rather than ngNewRouter so it's clearly being updated), but the post still has things wrong - like it says to create controllers for the components you're loading for the routes, but I discovered that you actually need to be creating them as directives (optimally using the new "component" wrapper in 1.5) with the restrict set to "A" (that was fun to figure out).
0 投票
0 回答
591 浏览

angularjs - Angular 新路由器现在是 ngComponentRouter。$componentLoaderProvider 的等价物是什么

有谁知道 $componentLoaderProvider 的新 ngComponentRouter 等价物来告诉路由器在哪里可以找到视图。我有一个位于应用程序根目录之外的主组件

app/components/home/home.html 以及以下 home.js

在上面的 templateUrl: 'app/components/home/home.html' 中,我认为应该可以省略。

以前版本的文档显示

但是它在 $componentLoaderProvider 上抛出一个错误,并且在通过 angular_1_router.js 文件进行搜索后,我找不到这样的提供者......有谁知道如何告诉 ngComponentRouter 在哪里可以找到组件的模板视图?

0 投票
1 回答
428 浏览

angularjs - 如何处理路由中的额外哈希?(AngularJS 1.5 + 新/组件路由器)

我们正在尝试使用带有新组件路由器位的 Angular 1.5 构建应用程序。我们遇到了一些边缘情况,我们想知道是否有任何解决方法。

关键球员

  • IdentityServer v2:我们的客户端目前将其用于 OAuth。它导致了这个问题的一部分。它是遗产,我们无法控制它的使用。
  • AngularJS 1.5作为我们的前端框架。
  • 我相信现在称为 ngComponentRouter的新角度路由器?我们认为这种风格可以帮助我们在 Angular v1.5 和 Angular v2 之间架起一座桥梁,并且很容易移植。
  • oauth-ng作为我们的 OAuth 隐式流的包装器。
  • 旧浏览器:从某种意义上说,我们必须支持 IE9+,这意味着我们不能使用 Angular 的 HTML5 模式。

目标

我们想要一个 URL,例如http://mysite/#!/auth/#auth_token=xyz123(结构不受我们控制,例如无法删除第二个哈希)和:

  • 将其放入实际的身份验证控制器
  • 使 auth_token 值可用,通过参数或直接通过$location. (它目前在到达控制器之前已被擦洗)。

背景/问题

我们的客户有一个中央登录系统,他们在其中使用 IdentityServer v2。据我了解,当我们从 IdSrv v2 请求令牌时,它会通过附加#auth_token=xyz123到您的重定向 URL 来响应。当它认为你有 时,它被写回来my.com/login.html,从而导致login.html#auth_token=xyz123.

但是,对于已经使用哈希的 Angular 应用程序,这会成为一个问题,因为 URL 以mysite.com/#/auth#auth_token=xyz123.

正如你所料,这让 Angular 很生气。我们还没有找到一种方法让它在组件路由器下工作。

它如何与旧路由器一起工作

根据oauth-ng 文档,如果我们使用的是未启用 html5 的旧路由器,我们将执行以下操作:

我们尝试了什么

  • 以类似的方式定义组件路由。这不起作用,因为/access_token=:accessToken包含一个=,组件路由器似乎不允许这样做。
  • 看看我们是否可以让 IdentityServer v2 改变响应的格式。似乎不可能;响应似乎被硬编码为[URL we define]#auth_token=xyz123.
  • 使用其他哈希等伪造 URL。通常会导致不良/不一致的行为。

我们认为我们的选择是什么

  • 使用包罗万象/未找到的控制器。如果我们让路由一直下到/**,我们可以从 中检索令牌值$location。不过,这有点恶心;我们想避免它。
  • 找到一种将完整 URL 输入控制器的方法。我们可以捕获路由并将其传递给控制器​​,但此时 URL 不可用。
  • 回到使用旧路由器或 ui-router(我们现在不想这样做)。

任何可以为我们指明正确方向的事情都将不胜感激!

0 投票
1 回答
1425 浏览

angularjs - Angular 1.5.3 & Typescript & ngComponentRouter : bindings: { $router:'<' } 总是返回未定义的路由器属性

我正在尝试使用 typescript 和组件控制器类的 Angular 1.5.3 组件路由器,但我无法将当前路由器注入到我的任何带有绑定的组件中:{$router:'<'}。当我在 chrome 调试器中检查任何组件的 $ctrl 时,它总是显示未定义。路由本身按预期工作(显示组件,路由链接工作,调用 $routerOnActivate)。我需要 $router 从代码中导航。

html页面:

编码

0 投票
3 回答
2481 浏览

javascript - 组件路由器中的绑定 - Angular 1.5

我正在为组件路由器中的绑定而苦苦挣扎。

在开发人员指南中说您应该避免在组件中使用 $scope 因此对象必须通过绑定传递。

基于示例: https://docs.angularjs.org/guide/componenthttps://docs.angularjs.org/guide/component-router我想出了:

HTML:

Javascript:

<span>Name: {{$ctrl.hero.name}}</span>不显示“Spawn”或任何东西。

0 投票
2 回答
3004 浏览

angularjs - 根路由器上的 Angular 1.5 $routerOnActivate

如果用户未登录,我想确保用户在继续访问他/她尝试访问的任何组件之前正确登录。发送他们登录。

我的想法是$routerOnActivate在根路由器中进行检查。对我来说,这可以解决任何子路线的问题。

但是,如果我只是尝试记录一些东西,似乎什么也没有发生。例子:

this.$routerOnActivate如果我将它放在 routeConfig 中指定的任何组件中,则相同的代码可以工作。但是显然我不想在每个组件中进行相同的检查,而是在全局范围内解决一次。

1.5的方法是什么?

0 投票
2 回答
245 浏览

javascript - nglink 在 angular 1.5 的 phantomjs 组件测试中不起作用

我有一个导航栏组件:

测试运行良好,ng-link="['NewStockCount']"但如果我添加它会失败并出现错误

ReferenceError:找不到变量:地图(第 2166 行)RouteRegistry@/home/femi/fielded/nav-integrated-state-dashboard/bower_components/bower-angular-router/angular1/angular_1_router.js:2166:30

我该如何纠正它以使其通过ng-link

0 投票
1 回答
307 浏览

angularjs - 无法让角度组件路由器处理组件的延迟加载

大家好,stackoverflowers,我已经尝试了一段时间,但没有成功使用新的组件路由器(ngComponentRouter)实现角度组件的延迟加载。这是我用于配置主要组件的代码:

我的第一个问题是我无法让它与注入加载器属性的 ocLazyLoad 一起工作,所以我将它加载到主控制器中并在加载器属性中引用它。在那之后,当我终于让它在加载器属性中工作时,我似乎无法让它真正加载组件,我一直收到这个错误:

现在我明白我显然在加载程序中做错了,我需要以某种方式注册组件。但我找不到任何关于加载器的角度文档,也没有其他人使用新路由器延迟加载组件,所以我真的不知道如何实现这一点。

我真的很感激这方面的一些帮助,但我通常也想知道使用角度组件路由器是否为时过早,因为它缺乏文档和支持。所以我真的很想听听其他有经验的 Angular 程序员对此事的看法。

编辑:有人对此事有任何见解吗?

0 投票
2 回答
672 浏览

angularjs - Angular 1.5 父子组件问题

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

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

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

0 投票
2 回答
198 浏览

angularjs - 有没有 ngComponentRouter CDN?

是否有任何来自谷歌的官方 CDN 具有 ngComponentRouter,我无法在任何地方找到它。