我正在努力使用Angular框架来使我的应用程序顺利运行,但我无法解决路由问题.
我有一个顶级AppComponent和app-routing.module.ts,它通过我的自定义SlideMenuComponent管理导航.我简化的AppComponent html模板:
我有一个顶级AppComponent和app-routing.module.ts,它通过我的自定义SlideMenuComponent管理导航.我简化的AppComponent html模板:
<app-slide-menu [buttons]="menuButtons"></app-slide-menu> <router-outlet></router-outlet>
我的SlideMenuComponent具有以下html作为其核心:
<nav><div *ngFor="let button of buttons"> <a routerLink="{{button.routerLink}}" >{{button.name}}</a> </div></nav>
用户可以通过此幻灯片菜单导航到“/ courses”,该菜单由CoursesComponent监督,该菜单将指向从服务器检索的特定CourseComponents的链接分页.这些组件驻留在他们自己的courses.module.ts模块中,他们自己的课程是routing.module.ts.但是,当我点击任何这些链接时,我会在Angular区域外触发导航,你是否忘记调用’ngZone.run()’?控制台警告,没有为打开的CourseCompontent调用ngOnInit(),并且它不会更新,直到我单击页面上的任何按钮.我通过router.navigate()手动导航时通过将此任务转发到NgZone.runTask(router.navigate())来解决此问题,但为什么会发生锚标记和routerLink direcrives?
这是我的CoursesComponent代码摘录:
<nav><ul> <li *ngFor="let course of api.data | paginate: { currentPage: currentPage,itemsPerPage: limit,totalItems: api.total }"> <a [routerLink]="course._id" [queryParams]="{ page: '1',limit: '5' }" > {{course.name}} ({{course.description}}) </a> </li> </ul></nav>
用来证明这个问题的gif: