angular-seed 路由配置详解:ngRoute 如何实现 !/view1 页面切换(含 hashPrefix 原理)

发布时间:2026/11/7 5:58:25

angular-seed 路由配置详解:ngRoute 如何实现 !/view1 页面切换(含 hashPrefix 原理) angular-seed 路由配置详解ngRoute 如何实现 #!/view1 页面切换含 hashPrefix 原理【免费下载链接】angular-seedSeed project for angular apps.项目地址: https://gitcode.com/gh_mirrors/an/angular-seedangular-seed 是 AngularJS 的官方种子项目通过 ngRoute 路由模块即可实现#!/view1、#!/view2这样无需刷新页面的前端路由切换。本文带你完整理解这套路由配置从 app.js 中的hashPrefix配置讲起拆解#!/view1地址是如何一步步驱动 ng-view 切换页面内容的新手也能轻松看懂。 快速上手30 秒体验路由切换先跑起来感受效果git clone https://gitcode.com/gh_mirrors/an/angular-seed cd angular-seed npm install npm start打开localhost:8000/index.html你会看到顶部两个导航链接见 index.htmlul classmenu lia href#!/view1view1/a/li lia href#!/view2view2/a/li /ul点击切换时浏览器地址栏变成#!/view1或#!/view2页面中间的 ng-view 区域内容随之变化而整个页面并不会重新加载——这就是 ngRoute 前端路由的魔力。 第一步主模块如何挂载ngRoute入口文件 app/app.js 做了三件事声明依赖myApp模块依赖ngRoute并聚合myApp.view1、myApp.view2两个路由子模块设置 hashPrefix$locationProvider.hashPrefix(!)决定 URL 中#后面带不带感叹号配置兜底路由$routeProvider.otherwise({redirectTo: /view1})表示访问任何未匹配的路径时自动跳到 view1。其中声明依赖这一步很关键因为myApp依赖了ngRoute整个应用里的路由配置$routeProvider才能生效。️ 第二步每个视图模块自注册自己的路由angular-seed 采用模块自治的组织方式每个视图文件夹里都有自己的when()路由声明view1.jswhen(/view1, { templateUrl: view1/view1.html, controller: View1Ctrl })view2.jswhen(/view2, { templateUrl: view2/view2.html, controller: View2Ctrl })每个路由配置就两个核心项配置项作用本项目示例templateUrl指定要加载的 HTML 模板view1.htmlcontroller指定接管该视图的控制器View1Ctrl比如 view2.html 里还演示了自定义 interpolate 过滤器用来把version服务注入到v%VERSION%中——这说明路由切换后新的控制器、指令、过滤器都会在ng-view内正常生效。 核心原理hashPrefix 与 #!/view1 的诞生这是很多人困惑的地方为什么地址是#!/view1而不是#/view1答案就在 app.js 这一行$locationProvider.hashPrefix(!);hashPrefix用于设置#号后面的前缀字符常见取值取值生成 URL说明!#!/view1老式 IE / jQuery 会把#!识别为 hash 变化兼容性最好本项目采用#/view1更简洁但旧浏览器可能不触发事件空字符串 HTML5 模式/view1依赖服务器重写规则刷新需后端配合为什么用 hash 路由而不是/view1真实路径零后端配置#之后的内容不会发送给服务器静态服务器如本项目的http-server无需任何 rewrite 规则直接 npm start 就能跑刷新不 404在#!/view2页面按 F5服务器只请求index.html路由状态由前端从 URL 恢复支持直接分享把xxx/index.html#!/view2发给别人打开就定位到 view2。 完整链路点击链接后发生了什么以点击view2链接为例整条链路只有 5 步用户点击 index.html 中的a href#!/view2浏览器只修改 hash不发起整页刷新ngRoute 内部监听$location的变化检测到 hash 从#!/view1变为#!/view2$location把#之后的部分解析为路由路径/view2!前缀被自动剥离ngRoute匹配 view2.js 中注册的when(/view2, ...)规则ng-view 用view2.html模板替换原有内容并实例化View2Ctrl控制器。反向操作浏览器前进/后退按钮走同样的监听逻辑所以 hash 路由天然支持浏览器历史导航。 目录结构速查路由相关的文件布局完整说明见 README.md路径职责app/app.js主模块引入 ngRoute、设置 hashPrefix、兜底路由app/index.html导航链接 ng-view视图容器app/view1/view1.js注册/view1路由与View1Ctrlapp/view2/view2.js注册/view2路由与View2Ctrlapp/core/version/version.js版本号服务演示路由切换后服务仍可用 动手练习扩展你的第一个路由照着 angular-seed 的模式加一个view3只需三步新建app/view3/目录放 view3.html 模板与注册when(/view3, ...)的view3.js在 app.js 的依赖数组中追加myApp.view3在 index.html 菜单加一个a href#!/view3链接。想改默认落地页只需把otherwise({redirectTo: /view1})里的目标换掉即可。❓ 常见疑问#!/view1和#/view1能混用吗不能。hashPrefix一旦设为!ngRoute 只按!前缀解析直接输#/view1会被当作未匹配路径触发otherwise重定向。生产环境能去掉 hash 吗可以切换到 HTML5 模式$locationProvider.html5Mode(true)但需要服务器把所有前端路径重写回index.html而 hash 路由在任何静态服务器上都开箱即用这也是 seed 项目的默认选择。路由和测试的关系每个视图都配有单元测试如 view1.spec.js路由行为还可参考 e2e-tests/scenarios.js 中的端到端场景。掌握ngRoute hashPrefix这套机制你就理解了早期单页应用URL 即状态的核心思想——现代框架的路由Vue Router、React Router本质上仍是它的升级版。【免费下载链接】angular-seedSeed project for angular apps.项目地址: https://gitcode.com/gh_mirrors/an/angular-seed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/7 14:51:29

Cesium前端直解GeoTIFF:geotiff.js+proj4地理坐标映射实战

1. 为什么前端直接渲染TIFF影像成了Cesium项目里的“硬骨头”Cesium在地理空间可视化领域已经稳坐头把交椅,但凡做过三维GIS项目的人都知道,它对标准瓦片(如WMTS、TMS)和3D Tiles的支持堪称丝滑,可一旦遇到原始TIFF——…

2026/11/7 18:45:03

电工证网上报名图保姆级教程:新手如何避开中介坑

电工证网上报名图保姆级教程:新手如何避开中介坑 不知道去哪报名怕被中介坑?别急,这篇【电工证网上报名图保姆级教程】直接给你划重点,从报名到取证全流程讲透,新手也能轻松上手。尤其是洛阳地区的初次报考人员,看完这篇你就知道该往哪儿走、该准备啥材…

2026/11/7 18:45:03

初级电工证复审机构值不值得考

初级电工证复审机构值不值得考 实操考试心里没底怕挂科,这几乎是每个打算报考初级电工证的学员的共同心声。尤其是对于南阳劳务班组的负责人来说,手里握着一堆项目,时间紧、任务重,能不能一次性通过考试,成了他们最关心的事。那么,初级电工证复审机构到…

2026/11/7 18:45:03

电工证多大就不怎么报名全攻略,学历不高也能报上名

电工证多大就不怎么报名全攻略,学历不高也能报上名 你是不是也觉得 学历不高怕报不上名 ?担心自己连电工证都考不了?别慌,今天我就带你一针见血地讲清楚【电工证多大就不】这个关键词背后的真相,还有 怎么报名…

2026/11/7 18:45:03

海盐考电工证报名值不值得考?证书过期了不知道怎么复审延期怎么办

海盐考电工证报名值不值得考?证书过期了不知道怎么复审延期怎么办 你是不是也遇到过这种情况:手里拿着电工证,结果一不小心就过期了,现在想用又用不上,还怕被单位追责?这种情况真的太多了,特别是在像海盐这样的地方,很多从事电力相关工作的人都会遇到…

2026/11/7 18:45:03

怎样查询带照片电工证 在哪考最靠谱的流程和技巧

怎样查询带照片电工证 在哪考最靠谱的流程和技巧 你是不是也担心自己学历不高,根本报不上电工证?别急,这其实是个误会。国家早就明确, 特种作业操作证的报考不看学历,看的是实际操作能力和安全知识…

2026/11/7 18:40:02

化龙电工证报名怎么报名?学历不高也能顺利通关

化龙电工证报名怎么报名?学历不高也能顺利通关 你是不是也在担心, 学历不高怕报不上名 ?是不是对 化龙电工证报名 流程一头雾水?其实,很多和你一样的人,已经顺利通过考试并拿到了电工证,改变了自己的职业轨迹。今天我们就来聊聊,…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/7 0:03:08

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在郑州这样的城市,很多施工企业负责人和一线作业人员在报考电工证和钳工证时都面临着同样的困惑。到底该考哪个证?哪个更适合自己?哪个证书…

2026/11/7 0:03:08

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱?

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱? 之前考的证在外省能不能转过来?这个问题我遇到太多了,今天就拿广西电工证办理流程来具体说说,别再走弯路了。广西电工证的报考、复审、继续教育这些环节,如果你不了解,真的会吃大亏,尤其对于从…

2026/11/7 0:03:08

电气电工证都有哪些保姆级教程

电气电工证都有哪些保姆级教程 你是不是正愁不知道去哪报名,怕被中介坑?别急,这篇保姆级教程专为河南初次报考人员准备,帮你搞清楚 电气电工证都有哪些 ,以及如何避开那些坑。 电气电工证都有哪些?别被五花八门的证书搞懵了…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑