Mit AngularJS + UI-Router muss ich eine URL mit einem von zwei Wörtern übereinstimmen:
d. /oneWord/...
oder /secondWord
...
Das Routing und die Controller sind fast identisch, daher möchte ich vermeiden, dass Code dupliziert wird.
Allerdings ist die Verwendung eines Regex, an den ich gewöhnt bin, nicht möglich, wenn reguläre Ausdrücke funktionieren sollten:
url: '/{type:(oneWord|secondWord)}/:group',
Es wird jedoch ein Fehler ausgegeben:
Unbalanced capture group in route '/{type:(oneWord|secondWord)}/:group'
Eine Regex sollte jedoch funktionieren, weil das gut funktioniert:
url: "/{page:[0-9]{1,8}}"
Ich weiß, dass (oneWord|secondWord)
eine gültige Regex ist, also was habe ich verpasst?
Gemäß der Dokumentation sollten Sie das Capturen nicht verwenden Klammern in Ihren Regex-Mustern.
Dies sollte funktionieren: url: '/{type:(?:oneWord|secondWord)}/:group'