首先,我想调整 Angular 用于匹配 URL 路由的模式。我找到了该函数,它正在针对 angular.js(版本http://code.angularjs.org/1.1.5/)的第 5612 行上找到的这些正则表达式运行 URL 位置:
SERVER_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
PATH_MATCH = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/,
DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};
那么我为什么要这样做呢?我使用 Angular 作为桌面 AIR 应用程序的框架。AIR 应用程序可以使用 HTML/JS 构建,随后封装在 AIR 中,提供对文件系统和操作系统的访问。因此,这种组合本质上允许您使用 Angular 构建多平台桌面 Web 应用程序。强大的东西。
这是 AIR 有一个自定义地址栏字符串的问题,它看起来像app:/
而不是http://
. 所以它有一个斜线而不是两个。Angular 使用地址栏位置来路由应用程序,即http://something.com/#/contactList
加载contactList
视图及其关联的控制器。我对正则表达式的了解非常(非常)有限,因此我无法阅读上面包含的模式,但我猜测一个斜线而不是两个或类似的东西可能是问题所在。
我的目标是调整模式,app:/
使其成为有效模式,我希望 URI 段制作和相关操作仍然有效。