首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

angular5到n级的JSON到侧边菜单生成

Angular是一种流行的前端开发框架,它可以帮助开发者构建高性能、可扩展的Web应用程序。JSON是一种数据格式,常用于前后端数据交互。侧边菜单是一种常见的网页布局组件,用于显示页面的导航菜单。

在Angular中,我们可以通过使用HttpClient模块从后端获取JSON数据。然后,我们可以使用*ngFor指令遍历JSON数据,生成侧边菜单的各个项。

首先,我们需要在Angular项目中引入HttpClient模块。在app.module.ts文件中,我们可以这样导入:

代码语言:txt
复制
import { HttpClientModule } from '@angular/common/http';

然后,在NgModule的imports数组中添加HttpClientModule:

代码语言:txt
复制
@NgModule({
  imports: [
    HttpClientModule
  ],
  ...
})

接下来,我们可以在一个服务中编写代码来获取JSON数据。假设我们有一个名为MenuService的服务:

代码语言:txt
复制
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class MenuService {
  private jsonUrl = 'assets/menu.json';

  constructor(private http: HttpClient) { }

  getMenuData(): Observable<any> {
    return this.http.get<any>(this.jsonUrl);
  }
}

在上述代码中,我们通过HttpClient的get方法从assets/menu.json文件中获取JSON数据。

接下来,我们可以在组件中调用MenuService来获取JSON数据并生成侧边菜单。假设我们有一个名为MenuComponent的组件:

代码语言:txt
复制
import { Component, OnInit } from '@angular/core';
import { MenuService } from '../menu.service';

@Component({
  selector: 'app-menu',
  templateUrl: './menu.component.html',
  styleUrls: ['./menu.component.css']
})
export class MenuComponent implements OnInit {
  menuData: any[];

  constructor(private menuService: MenuService) { }

  ngOnInit(): void {
    this.getMenuData();
  }

  getMenuData(): void {
    this.menuService.getMenuData()
      .subscribe(data => {
        this.menuData = data;
      });
  }
}

在上述代码中,我们通过调用MenuService的getMenuData方法获取JSON数据,并将其赋值给menuData变量。

最后,我们可以在menu.component.html模板文件中使用*ngFor指令遍历menuData,生成侧边菜单的各个项。假设侧边菜单的每个项都有一个name属性和一个url属性:

代码语言:txt
复制
<ul>
  <li *ngFor="let item of menuData">
    <a [href]="item.url">{{ item.name }}</a>
  </li>
</ul>

通过以上代码,我们可以将JSON数据转换为侧边菜单,并显示在页面上。

在腾讯云中,推荐使用云存储服务(COS)来存储静态资源文件,例如上述代码中的menu.json文件。您可以通过以下链接了解腾讯云COS的相关产品和详细介绍:

腾讯云对象存储(COS):https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Python】循环语句 ⑤ ( range 语句 | for 循环本质遍历序列 | 生成由 0 开始到 n 的序列 | 生成由 m 到 n 的序列 | 生成由 m 到 n 的步长为 k 的序列 )

- 生成由 0 开始到 n 的序列 range 语法 1 : 生成 由 0 开始到 n 的序列 , 不含 n 本身 ; range(n) 代码示例 : """ range 代码示例 """ my_range...= range(6) print(list(my_range)) 执行结果 : [0, 1, 2, 3, 4, 5] 2、range 语法 2 - 生成由 m 到 n 的序列 range 语法 2...: 生成 由 m 到 n 的序列 , 不含 n 本身 ; range(m, n) 代码示例 : my_range = range(1, 6) print(list(my_range)) # 输出:[1..., 2, 3, 4, 5] 执行结果 : [1, 2, 3, 4, 5] 3、range 语法 3 - 生成由 m 到 n 的步长为 k 的序列 range 语法 3 : 生成 由 m 到 n 的步长为...k 的序列 , 不包含 n ; 下面的代码是 生成 0 到 10 之间的偶数序列 , 不包括 10 本身 ; 代码示例 : """ range 代码示例 """ my_range = range(0

22320
  • ionic3升级适配angular5

    昨天angular5和ionic3同时发布更新了,为了用上angular5的新特性,还是有必要踩下坑的,当然踩坑的白老鼠建议选用一个最近不用维护的项目。...angular5的最新beta版 在ionic3官网建议是更新依赖到angular5.0.0版本,而根据上述说明,优先选择做了做了bug修复的angular5.0.1版。...于是我们升级的步骤如下: 一、更新包依赖 删除package-lock.json和node_modules,然后修改package.json如下: "dependencies" : { ......的更新说明: ---- 更改内容: I18n更改; 内置管道如Date、Currency、Percent的更改; 弃用内容: compiler: ngGetContentSelectors()在v4版本被移除...现在移除,用SerializerTypes.PRIMITIVE代替; ---- 看上去内容很多,但不要被吓到,因为从内核级别看是改动比较多,但从项目应用上只是个别地方要调整,基本向下兼容,故angular4到angular5

    2.5K40

    微服务引入swagger生成接口的json导入到yapi配置方法 数据管理 开启url导入

    微服务引入swagger生成接口的json导入到yapi配置方法 数据管理 开启url导入 yapi安装参考 window10 yapi安装 swagger配置 及 Error: getaddrinfo...value="id,不作展示,查看或编辑使用") private Integer id; 通过http://ip:port/swagger-ui.html进行查看,同时可以输入接口参数,手动执行简单的测试...; 进入yapi的数据管理页面,通过swagger方式,输入swagger的json文件对应的url:http://{ip}:{port}/{project Name}/v2/api-docs 执行数据导入操作...,如:http://127.0.0.1:8080/renren-fast/v2/api-docs 如果该项目存在{project Name}访问路径的情况下。...如果是在不同的局域网机器,需要通过局域网IP来导入。

    13810

    搭建后台管理系统的思路

    个人的体会是整体的基础框架,这个是指最基础的框架,比如根 router-view, 侧边栏以及侧边栏的router-view,以及顶部栏,等基础布局的控制。...的组件 NavMenu 导航菜单 侧边导航栏需要我们路由的一些信息,比如路由对应的组件,就像 router-link 对应的 router-view 如果菜单是二级菜单,三级菜单,需要怎么处理 如果需要折叠菜单...,需要怎么处理,这里就需要阅读 折叠菜单组件 也就是说侧边菜单来其实就是一个个的 router-link 然后扩展菜单项是否有 icon 小图标,是否有标题存在,那么路由就需要设置 meta 属性了 顶部栏...面包屑 消息通知 下拉菜单 关闭展开侧边栏按钮 面包屑 需要注意什么呢?...需要注意是否需要点击跳转的,定位到那一级菜单的问题 需要研究 Breadcrumb 面包屑 关闭展开侧边栏按钮 需要使用 vuex 来存储打开与否的这个状态值,通过 vuex 来更改状态 AppMain.vue

    2.8K20

    Core + Vue 后台管理基础框架4——前端授权

    1、前言   上篇,我们讲了后端的授权。与后端不同,前端主要是通过功能入口如菜单、按钮的显隐来控制授权的。具体来讲,就是根据指定用户的制定权限来加载对应侧边栏菜单和页面内的功能按钮。我们一个个来讲。...截图中,上边的红框代表是在注册路由跳转前回调钩子,此钩子可以根据具体情况决定是否需要导航到目的路由或导航到其他路由。...下边的红框先调用menu store中的获取侧边栏action,从后端拿到本用户具有权限的侧边栏菜单: ?   ...从后端拿到侧边栏菜单json,前端是没办法直接使用的,一堆json对象或者字符串,与Vue路由、视图并没法儿无缝衔接,所以上边我们看到调用了travseRoutes方法,此方法在前端工具类route.js...3、功能按钮   大部分项目都做到了菜单级的权限控制,但做到页面级别的,倒是不多。毕竟他该多,而且也是要费点儿功夫的。那这里我们就来看看前端是如何实现按钮级权限控制的。

    75110

    React 侧边栏组件 Sidebar

    二、基础概念与实现(一)侧边栏的基本结构侧边栏一般由两部分组成:容器(Container)和内容(Content)。容器负责定义侧边栏的整体布局和样式,而内容则包含具体的菜单项或功能按钮等。...在React中,我们可以通过创建一个名为Sidebar的组件来封装这些逻辑。(二)状态管理侧边栏的状态(如是否展开、当前选中的菜单项等)是需要动态管理的。...(二)性能问题随着侧边栏内容的增加,特别是当涉及到大量动态数据渲染时,可能会出现性能瓶颈。为了避免这种情况,我们应该尽量减少不必要的重渲染。...React中有多种方式可以实现国际化(i18n),例如使用react-intl库。通过将文本内容提取到外部资源文件中,并根据用户的语言设置动态加载相应的翻译,可以使侧边栏适应不同语言环境。...从响应式设计到性能优化,再到国际化支持和事件委托,每一个方面都对构建高质量的侧边栏组件至关重要。此外,通过引入动态加载、缓存和持久化状态等高级特性,我们可以进一步提升侧边栏的功能性和用户体验。

    20010

    SaaS-多租户SaaS平台的数据库方案(前端框架)

    3 前端框架 3.1 脚手架工程 技术栈 vue 2.5++ elementUI 2.2.2 vuex axios vue-router vue-i18n 前端环境 node 8.++ npm 5.++...如果以后做真正的企业级开发,建议开启 (4)输入命令: npm run dev 3.3 工程结构 整个前端工程的工程目录结构如下: ├── assets...路由和菜单是组织起一个后台应用的关键骨架。...本项目侧边栏和路由是绑定在一起的,所以你只有在@/router/index.js 下面配置对应的路由,侧边栏就能动态的生成了。大大减轻了手动编辑侧边栏的工作量。...3.4.2 前端数据交互 一个完整的前端 UI 交互到服务端处理流程是这样的: UI 组件交互操作; 调用统一管理的 api service 请求函数; 使用封装的 request.js 发送请求; 获取服务端返回

    2.4K20

    团队技术文档构建利器vuepress上手实践

    ── styles (可选的) 用户存放样式相关文件 │ │ │ ├── index.styl 将会被自动应用的全局样式文件,会生成在最终的css文件结尾,具有比默认样更高级的优先级 │...3.1.3 侧边栏(sidebar) themeConfig.sidebar 侧边栏一般用于文档的目录索引,可以直接在 config.js 中配置链接数组,也在页面中配置 sidebar:auto 自动生成侧边栏目录...,但是自动生成只能生成当前页。...css文件结尾,具有比默认样式更高的优先级,palette.styl 用于重写默认样式常量,或者设置新的 stylus 颜色常量,如: $accentColor = #3eaf7c $textColor.../usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run docs:build # 进入生成的文件夹 cd docs/.vuepress/dist #

    1.3K20

    团队技术文档构建利器vuepress上手实践

    ── styles (可选的) 用户存放样式相关文件 │ │ │ ├── index.styl 将会被自动应用的全局样式文件,会生成在最终的css文件结尾,具有比默认样更高级的优先级 │...3.1.3 侧边栏(sidebar) themeConfig.sidebar 侧边栏一般用于文档的目录索引,可以直接在 config.js 中配置链接数组,也在页面中配置 sidebar:auto 自动生成侧边栏目录...,但是自动生成只能生成当前页。...侧边栏还支持以下更加细节的设置: 设置嵌套层数 是否展开所有 标题链接是否激活(禁用可以懒加载提升性能) 分组 侧边栏分页面定制 禁用 3.1.4 搜索框(search box) themeConfig.search...css文件结尾,具有比默认样式更高的优先级,palette.styl 用于重写默认样式常量,或者设置新的 stylus 颜色常量,如: $accentColor = #3eaf7c $textColor

    2.4K94

    EaseMobile 主题导航菜单设置小图标的方法(图文+视频教程)

    Off Canvas 侧边栏导航与WordPress 菜单的对应 EaseMobile 主题的Off Canvas 侧边栏导航在后台中是通过WordPress 的“菜单”项设置的,如下图,这个是前台与“...小图标的设置·打开“图像描述” 在实际使用中,当你设置好菜单项后,接下来就要为每个菜单项设置独一无二的小图标了(有了小图标的陪衬,侧边栏才好看嘛)。添加小图标是通过菜单项中的“图像描述”来的。...上传json 文件、4个svg 文件到fontello 先下载该文件包,解压缩后,里面有4个 svg 格式的文件以及一个config.json 文件。 ? ?...一、首先你用浏览器进入到 http://fontello.com/,等网站加载完毕。 ? ? 二、拖拽上传这5 个文件(4个 svg 格式的文件以及一个config.json 文件)到首页。 ? ?...二、一面打开主题目录下的fontello文件夹,一面打开fontello-xxxx.zip 文件的下一级目录(见图),然后解压这些文件覆盖到主题目录下的fontello文件夹下,覆盖源文件。 ? ?

    2.1K80

    用Axure画出Web后台产品的菜单栏组件

    默认展开左侧菜单的二级页面处于某一页面的时候,对应菜单项都会处于选中状态并呈现不同的样式。点击一级分类即可收起对应的二级页面,再次点击即可展开。默认进入首页,同时首页对应的菜单处于选中状态。...从默认元件库中拖动“矩形1”到工作区合适位置,修改尺寸为(160,40),双击输入文字表示首页,字号修改为16px,左侧对齐然后左侧边距修改为40px。2、再画首页图标。...从默认元件库中拖动“图片”到矩形中合适位置,尺寸修改为(20,20),样式点击“调整颜色”图标,勾选调整颜色,饱和度拖动到最左边变成0。3、再画首页文字的选中样式。...10、在左侧母版区域,右键母版“菜单栏”,点击“添加到页面中…”然后点击“全选”,勾选“置于底层”,最后点击确定。11、生成原型HTML并查看原型效果。02 画出有交互原型12、先画进入首页的交互。...右侧边栏切换到“交互”,点击“新建交互”按钮,选择触发事件“单击时”,添加动作“打开链接”,链接到“对应的页面”,点击“确定”按钮。14、再画一级分类的交互。

    31920

    开发工具总结(15)之Vuepress制作文档并发布到GitHub

    .vuepress/styles/index.styl 将会被自动应用的全局样式文件,会生成在最终的 CSS 文件结尾,具有比默认样式更高的优先级。...---- 六、配置详解 (一)package.json配置 路径为:hello_vuepress/package.json 开始的4行是运行yarn init -y自动生成的,这里的scripts节点里面配置两个启动命令...侧边栏标题优先级 可以通过上文提到的 YAML front matter 来设置侧边栏的嵌套的标题链接最大深度。...c.自动生成侧边栏 所有页面启用自动生成侧边栏: module.exports = { themeConfig: { sidebar: 'auto' } } 如果设置了多语言模式,可以指定特定语言启动自动生成侧边栏...如果发布到https://用户名.github.io/二级路径,则将base设置成二级路径。

    4K50

    后台管理系统 – 页面布局设计

    vue-element-admin采用的是侧边菜单布局,侧边菜单 + 顶部导航 + 内容区域,这也是我个人最推崇的布局方式。...(3)混合菜单布局 其实和侧边菜单布局大同小异,还是属于侧边菜单布局的范畴。 只不过这样布局的话,面包屑导航就不适合和顶部放一行了,只能另起一行。...侧边栏的实现方式是难点,因为这里即涉及到如何和路由数据匹配,又涉及权限的筛选。...侧边栏最好是和路由配置共用一套数据,方便扩展和维护,这里得益于 react-router-waiter 已经封装好的路由管理方案(类vue-router),所以直接读取路由配置数据,动态生成菜单组件结构...三级菜单11),展示出来。

    7.4K51

    手把手教你用vuepress搭建自己的网站(2)

    其中导航栏的链接分为三种:一级 nav,链接,二级下拉菜单,带标题的多级分类菜单 一级 nav,直接带路由即可 themeConfig: { nav: [ { text: '首页', link...如果想 nav 二级下拉菜单,如下配置,link的属性值带有链接,会直接是链接,若不是那就是路由,在vuepress中提供了一个items属性,配置二级导航如下所示 themeConfig:{ nav...如果你想要二级菜单带有标题,分类的菜单形式,如下配置 themeConfig:{ nav: [{text: "主页", link: "/" }, { text: '网站',...link: 'http://doc.itclan.cn' }, // 后面直接是链接 { text: "前端", // 二级菜单配置...你可以按照这个类似的结构,无限制的配置下去 光有 nav 导航是不够的,下面来配置一下侧边栏,怎么配置侧边栏才是重中之重 配置侧边栏-slider 自动获取侧边栏内容 如果你希望自动生成当前页面标题的侧边栏

    2.6K20

    layuiAdmin pro v1.x 【单页版】开发者文档

    在 start/json/menu.js 文件中,我们放置了默认的侧边菜单数据,你可以去随意改动它。...如果你需要动态加载菜单,你需要将 views/layout.html 中的对应地址改成你的真实接口地址 侧边菜单最多可支持到三级。...//二级菜单名称(与视图的文件夹名称和路由路径对应) ,"title": "栅格" //二级菜单标题 ,"jump": '' //自定义二级菜单路由地址 ,"spread": true //是否默认展子菜单...需要注意的是以下几点: 当任意级菜单有子菜单,点击该菜单都只是收缩和展开操作,而并不会跳转,只有没有子菜单的菜单才被允许跳转。...我们假设一级菜单的 name 是:a,二级菜单的是:b,三级菜单的 name 是 c,那么: 三级菜单最终的路由地址就是:/a/b/c 如果二级菜单没有三级菜单,那么二级菜单就是最终路由

    4K20

    一个vuepress配置问题,引发的js递归算法思考

    # 问题 我使用的elog插件批量导出语雀文档。elog采用的配置是所有文章平铺导出,没有按照语雀知识库目录生成markdown,这导致 vuepress 侧边栏无法和语雀一致,如下图。...那如何批量生产菜单配置项呢? 递归函数呀呀呀呀呀呀 elog 在同步语雀文档时,会自动创建elog.cache.json缓存文件,在 vueprss 项目根目录中查看。...uuid 咱们根据以上参数,编写递归函数, 将elog.cache.json的一维数组,递归生成 vuepress 侧边栏配置数据 代码如下: function genYuqueRoute() {...广度优先搜索,对数据结构的竖向执行,把树结构平面铺开、以层级数为列数,从第一列依次执行。 将深度搜索、广度搜索代入到生活场景更容易理解。...咱们先看一个家庭关系树状图,爷爷奶奶是一级属性、父母叔伯二级、孙子孙女三级属性、重孙们是四级属性,以此类推。形成一个家庭关系树状图。

    30120

    Visual Studio 智能代码插件:CodeGeeX

    在实际开发场景中最常见也是提效最明显的场景。 根据注释生成代码 根据自然语言的注释,自动生成所需要的代码,可以生成完整的方法级函数。...AskCodeGeeX智能问答 通过侧边栏的智能问答交互,可以将开发中遇到的技术问题,直接向CodeGeeX提问获得快速解答。 自动添加注释 给代码自动添加行级注释,可以根据需要选择英文或者中文。...1、登录 启动后进行登录,有三种登录方式,可以点击左上角的 登录 链接,也可以点CodeGeeX菜单中的"登录”,也可以打开聊天框打开侧边栏进行登录,具体如下图所示: 这里通过CodeGeeX的侧边栏登录...通过第三方登录,然后绑定手机号,就可以使用CodeGeeX的全部功能,开启倍速编程的体验吧! 2、设置 可以通过点击侧边栏顶部的更多按钮,下拉菜单中直接进入设置,修改更符合开发习惯的设置。...在右键菜单中点击CodeGeeX ,然后点击下一级菜单生成注释即可。 生成单元测试 在编辑器中选中代码,点击鼠标右键,菜单中点击CodeGeeX,然后点击下一级菜单生成单测。

    31310

    React 折腾记 - (1) React Router V4 和antd侧边栏的正确关联及动态title的实现

    v4虽然提供了全局404组件,但是history里面没有代表404的状态 实现目标 点击侧边栏的子菜单会改变标题,对应的item也会高亮 直接修改路由,初次加载等会自动展开对应的分组,高亮对应的子项...location; sidebarData.map(item => { if (item.pathname) { // 做一些事情,这里只有二级菜单...} // 因为菜单只有二级,简单的做个遍历就可以了 if (item.children && item.children.length...这样鉴权机制可以做到很细致化,但是对应的判断逻辑也会多起来,看业务改了 也可以维护过渡效果,添加对应的字段,然后每次访问不同URL的时候更改过渡效果 以上的都需要依赖状态管理器,来维护,因为涉及到不同组件的通讯...CSS文件什么的 ├── jsconfig.json # 用来映射webpack alias 的,这样vscode下才能智能提示alias的路径 ├── package.json ├── public

    3K30
    领券