AngularJS Verwendete $ params-Variablen für einen in einer Route definierten Controller

8

Ist es möglich, in AngularJS eigene Variablen in einer definierten Route zu übergeben?

Der Grund, warum ich das mache, ist, weil ich Datenrepräsentationen derselben Seite haben muss (eine ist eine gefilterte Ansicht in Bezug auf die JSON-Daten) und alles, was ich tun muss, ist ein boolesches Flag für die $ params Array, damit die Controller-Funktion weiß, dass diese Seite entweder gefiltert oder nicht gefiltert ist.

In etwa so:

%Vor%     
matsko 21.08.2012, 17:24
quelle

4 Antworten

21

Laut $routeProvider documentation hat der route -Parameter von $routeProvider.when() eine Eigenschaft resolve :

  

Eine optionale Zuordnung von Abhängigkeiten, die in den Controller eingegeben werden sollte.

So etwas sollte funktionieren:

%Vor%     
Marcello Nuccio 22.08.2012, 06:04
quelle
1

AFAIK es ist derzeit nicht möglich, zusätzliche Parameter für eine Route anzugeben. Nachdem dies gesagt wurde, kann Ihr Anwendungsfall leicht durch Testen abgedeckt werden, wenn: id als Teil von $ routeParams definiert ist.

Die Sache ist, dass AngularJS Ihre Routen entweder auf '/ full / page' oder '/ full / page / with /: id' abgleicht, indem Sie einfach $ routeParams für ID-Präsenz in Ihrem Controller testen:

if ($routeParams.id)

Sie würden wissen, in welchem ​​Fall Sie sind.

Die Alternative besteht darin, verschiedene Controller für verschiedene Routen zu verwenden.

    
pkozlowski.opensource 21.08.2012 20:57
quelle
0

so etwas muss Arbeit für Filter sein:

%Vor%

und die routage:

%Vor%     
Ema.H 08.08.2013 12:20
quelle
0

Du kannst Sneak Params direkt durch $route.current.$$route bekommen.

%Vor%

Obwohl es funktioniert, würde ich immer noch eine resolve Lösung bevorzugen. params (oder ein anderer Name Ihrer Wahl) könnte in zukünftigen Versionen durch angularjs überschrieben werden.

    
Sladex 01.08.2014 14:10
quelle

Tags und Links