2017-04-12 3 views
0

In AngularJS wir (mit ui-Router) zu tun, wenn ein Zustand definieren:Hat Angular Routen oder Zustände wie UIRouter benannt?

.state('myState', { 
    url: 'some-user-friendly-url' 
    ... 
}) 

So haben wir einen Weg url und name einzustellen. Es ist nett zu haben, also machen wir uns keine Gedanken über die URL und erinnern uns nur an den Namen des Staates, wenn wir $state.go('myState') verwenden wollen.

Ich beginne mit Angular, aber in seinem nativen Router gibt es path, die mit Direktive verwendet wird, um zu einer Route zu gehen und in der gleichen Zeit verwenden Sie es als die URL.

Hat der native Router eine Lösung für diesen Fall? Oder ist es wieder besser, mit UI-Router für Angular zu gehen?

Antwort

1

Die Winkel (2+) Router haben nicht genannt Staaten - die gleiche Sache, die Sie mit UI-Router tun würden $state.go(<some state name>) zu sagen, würden Sie durch die Verwendung router.navigate(<some path>) mit dem Winkel Router tun. Meine persönliche Empfehlung wäre, den Angular Router zu testen, um zu sehen, ob Sie diese Namen tatsächlich vermissen. Der UI-Router hat mit AngularJS einen echten Bedarf, da der Standard-Router so begrenzt war. Der neue Router hat viel vom UI Router (und anderen Routern) gelernt und ist viel fähiger, also würde ich vorschlagen, es auszuprobieren, um zu sehen, ob es Ihren Bedürfnissen entspricht.

Aber Sie können UI Router auch in Angular verwenden, wenn Sie Ihre Zustände haben müssen.

+0

Danke für die Antwort, ich weiß nicht, ob es nur meine Angewohnheit ist, aber ich denke, es ist super schön, wenn Sie Navigation und die Art, wie Sie denken über Staaten und URLs, die in der Browser-Adressleiste angezeigt werden. Zweitens ist es schön in Bezug auf Code-Basis-Unterstützung, wenn ich Zustand und verwenden Sie es in HTML, Komponenten, um nach Namen zu navigieren, ich glaube nicht, wie URL aussieht, kann ich URL ohne Schmerzen ändern, falls ich benutze URL für Navigationslogik Ich muss jede Verwendung aktualisieren ... – BotanMan

+0

Versteh mich nicht falsch - ich verstehe die Vorteile der Scheidung Staat von URL, aber obwohl das eine großartige Funktion von UI Router war, glaube ich, UI Router übernahm AngularJS mehr wegen der Mängel der eingebauten ngRoute als wegen dieser Eigenschaft speziell. Ich weiß, dass frühe Implementierungen des neuen Routers Routen benannt haben, aber sie haben es während eines der Umschreibungen herausgerissen - ich denke, für die meisten Anwendungsfälle waren die Namen mit den URLs überflüssig. – snorkpete

+0

Der Angular Router ist sehr gut darin, Routen mit einzelnen Teilen zu erstellen und/oder Routing relativ zur aktuellen Komponente vorzunehmen, damit sich Ihre URLs leicht an Änderungen in Ihrer Komponentenstruktur anpassen können. Es ist nicht so, dass du immer komplette URLs in deiner 'router.navigate()' Methode erstellen musst, also gibt es viel mehr Flexibilität, als du vielleicht zuerst denkst – snorkpete