Im UI-Router erfordert die Übergabe von Parametern an einen Status beim Übergang über ui-sref eine spezielle Konfiguration. Schauen wir uns die Schritte genauer an:
1. Definieren Sie URL-Parameter:
Definieren Sie die erwarteten URL-Parameter in der URL-Eigenschaft des Staates. Die Syntax lautet:paramName? Dabei ist paramName der Parameter, den Sie erhalten möchten. Zum Beispiel:
.state('home', { url: '/:foo?bar',
2. Weisen Sie ui-sref Parameterwerte zu:
Übergeben Sie Parameterwerte als Objekt in geschweiften Klammern an ui-sref. Die Syntax lautet ui-sref="stateName({paramName: 'value', ...})". Beispiel:
<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">Go to home with foo and bar parameters</a>
3. Verwenden Sie $stateParams im Controller:
Fügen Sie im Controller für den Zielstatus $stateParams ein, das die übergebenen Parameter enthält. Rufen Sie die Werte mit $stateParams.paramName ab. Beispiel:
app.controller('SomeController', function($scope, $stateParams) { var foo = $stateParams.foo; var bar = $stateParams.bar; })
4. Übergabe von Nicht-URL-Parametern:
Zusätzlich zu den Parametern in der URL können Sie zusätzliche Parameter in der Parameterkonfiguration des Staates definieren. Dadurch können Sie Parameter übergeben, die nicht Teil der URL sind. Beispiel:
.state('home', { url: '/:foo?bar', params: { foo: { value: 'defaultValue', squash: false, }, hiddenParam: 'YES' }
In params definierte Parameter können mit $state.go() oder ui-sref übergeben werden. Sie werden nicht in die URL aufgenommen.
5. Array-Parameter:
Sie können Parameter auch als Arrays deklarieren, indem Sie array: true in der Parameterkonfiguration festlegen. Beispiel:
params: { bar: { array: true, } }
Denken Sie daran, beim Übergeben von Array-Werten eckige Klammern zu verwenden:
<a ui-sref="home({foo: 'fooVal1', bar: ['barVal1', 'barVal2']})">...</a>
Das obige ist der detaillierte Inhalt vonWie übergeben Sie mit ui-sref Parameter an Zustände im UI-Router?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!