JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – Angular 2:在另一个组件上定义路由器而不是引导路由器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我还在使用Angular2进行项目.
如果您想了解我需要做什么的更多详细信息,请参阅此issue.

我有一个通过bootstrap引导的AppComponent.这是一个非常简单的组件:

@Component({
    SELEctor: 'app-view',directives: [ Devtools,MainComponent ],template: `
        { }

该组件包括另一个:MainComponent(通过main-cmp选择器).出于某些原因,我想在MainComponent中设置我的路由.

这是代码:

@Component({ 
    SELEctor: 'main-cmp',directives: [ ROUTER_DIRECTIVES,NavComponent ],template: `
        { path: '/home',name: 'Home',component: HomeComponent,useAsDefault: true },{ path: '/medias',name: 'Medias',component: MediasComponent }
])
export class MainComponent {
    constructor (private router:router,private store:Store

最后,MainComponent包含NavComponent,这是一个非常基本的导航.

问题是,通过此设置,我遇到了这个问题:
EXCEPTION:组件“AppComponent”没有路由配置.在NavComponent @ 2:15中的[[‘Home’]中.

当然,如果我将路由器的逻辑移动到AppComponent,一切都运行良好.

所以我的问题是:有没有办法将东西路由到另一个组件而不是引导的组件?

谢谢 :).

最佳答案
看起来这是不可能的,因为RouteRegistry类的generate方法明确依赖(硬编码)根组件.在源代码中查看此行:

> https://github.com/angular/angular/blob/master/modules/angular2/src/router/route_registry.ts#L345

这是代码错误的代码:

RouteRegistry.prototype._generate = function(linkParams,ancestorinstructions,previnstruction,_aux,_originalLink) {
  (...)
  var parentComponentType = this._rootComponent; // <----
  (...)

  var rules = this._rules.get(parentComponentTypE);
  if (lang_1.isBlank(rules)) { // <----
    throw new exceptions_1.baseException("Component \"" +
      lang_1.getTypenameForDebugging(parentComponentTypE) +
      "\" has no route config.");
  }

  (...)
};

此方法是从RouterLink指令的_updateLink方法间接使用的.

这是相应的堆栈跟踪:

RouteRegistry._generate (router.js:2702)
RouteRegistry.generate (router.js:2669)
Router.generate (router.js:3174)
RouterLink._updateLink (router.js:1205)

请参阅我用于调试问题的plunkr:https://plnkr.co/edit/8JojtgZmc8kA9ib6zvKS?p=preview.

大佬总结

以上是大佬教程为你收集整理的javascript – Angular 2:在另一个组件上定义路由器而不是引导路由器全部内容,希望文章能够帮你解决javascript – Angular 2:在另一个组件上定义路由器而不是引导路由器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。