1

まず最初に、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};

では、なぜ私はそれをしたいのでしょうか? デスクトップ AIR アプリケーションのフレームワークとして angular を使用しています。AIR アプリケーションは、HTML/JS を使用して構築できます。HTML/JS はその後、ファイルシステムと OS へのアクセスを提供する AIR にラップされます。したがって、この組み合わせにより、基本的に、Angular を使用してマルチプラットフォームのデスクトップ Web アプリケーションを構築できます。強力なもの。

app:/AIR には、ではなくのように見えるカスタム アドレス バー文字列があるという問題がありますhttp://。したがって、スラッシュは 2 つではなく 1 つです。Angular は、アドレス バーの場所を使用してアプリケーションをルーティングします。つまり、ビューとそれに関連付けられたコントローラーをhttp://something.com/#/contactListロードします。contactList正規表現に関する私の知識はかなり (非常に) 限られているため、上記のパターンを読み取ることはできませんが、スラッシュが 2 つではなく 1 つまたはそれに類似したものが問題になる可能性があると推測しています。

私の目的はパターンを調整しapp:/て有効なパターンにすることであり、URI セグメントの作成と関連するアクションが引き続き機能することを願っています。

4

2 に答える 2

1

Mozilla 正規表現ドキュメントを参照してください: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

@shaunhusain がコメントで既に説明したことは、以下を除いてほとんど正しいです。

  • \w単一の英数字またはアンダースコアに一致
  • + 前の文字の 1 つ以上 (0 または 1 ではない) に一致します

したがって、\w+長さが 1 文字以上の単語に一致します。

app:/. _

于 2013-07-16T01:24:07.593 に答える