Sidemenu 折叠无法使用 Angular 模块

Posted

技术标签:

【中文标题】Sidemenu 折叠无法使用 Angular 模块【英文标题】:Sidemenu collapse not working using Angular module 【发布时间】:2018-03-07 09:03:39 【问题描述】:

我在我的 Angular 项目中集成了一个 sb-admin 模板。因此,我将其划分为侧边栏、页脚等模块。我面临折叠侧边栏的问题。 如果我使用模块插入侧边栏,menu collapse 不起作用,如果我将 <nav> 直接移动到 index.html 中的 <body>,它有效!

这是我的代码 -

sidebar.component.html -

<nav class="navbar navbar-expand-lg navbar-light sakon-header fixed-top" id="mainNav">
    <a class="navbar-brand" href="">
        <img style="height:30px" src="assets/images/sakon-logo-horizontal.png" />
    </a>
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive"
        aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
        <ul class="navbar-nav navbar-sidenav sakon-sidebar" id="exampleAccordion">
        </ul>
    </div>
</nav>
<router-outlet></router-outlet>

index.html -

<body>
    <app-root>
    </app-root>
    <!-- if nav moved here, it works -->
</body>

所以,我希望它与侧边栏模块一起使用

更新:参考的项目结构。 -

- app
    - pages
    - theme
        - components
            - sidebar
                - sidebar.component.css
                - sidebar.component.html
                - sidebar.component.ts
    - app.component.css
    - app.component.html
    - app.component.ts
    - app.module.ts
- index.html

【问题讨论】:

你能分享一下你的项目结构吗 我刚刚更新了,请在上面查看! 你的 app.component.ts 是否包含类似@Component( selector: 'app-root', template: '&lt;router-outlet&gt;&lt;/router-outlet&gt;', )'的内容 是的,是一样的! 没错!我的布局一直是固定的,但只有内容会根据路线发生变化。 【参考方案1】:

为此你需要添加 app.routing.ts

 - app
    - pages
    - theme
        - components
            - sidebar
                - sidebar.component.css
                - sidebar.component.html
                - sidebar.component.ts
    - app.component.css
    - app.component.html
    - app.component.ts
    - app.module.ts
    - app.routing.ts
 - index.html

在您的app.routing.ts 中,您需要添加类似这样的内容。

export const AppRoutes: Routes = [
    path: '',
  component: SidebarComponent,
  children: [
  path: 'ROUTING PATH', loadChildren: 'COMPONENT_PATH']]

在你的app.component.ts 中应该是这样的

@Component(
  selector: 'app-root',
  template: '<router-outlet></router-outlet>'
)

【讨论】:

我已经这样做了 - path: '', component: SecureComponent, canActivate: [AuthGuard], children: SECURE_ROUTES RouterModule.forRoot(AppRoutes) 添加到您的app.module.ts 是的,添加了。 仍然无法确定您可能出错的地方,目前,我正在研究相同的工作方式。

以上是关于Sidemenu 折叠无法使用 Angular 模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular 6 和 bootstrap 3.3.7 创建带有复选框列表的可折叠/可扩展/树结构

React Native Navigation v2 sideMenu 无法导航到屏幕

ionic 2 + angular 2 - 选项卡 + 侧边菜单

如何在 ionic2-angular2 中动态切换菜单的一侧?

在 xcode 的 SideMenu 库上禁用滑动/手势

无法从 sideMenu swift 中删除启动器