Gibt es eine Möglichkeit, $ stateParams-Werte zu definieren, wenn ein bestimmter Zustand getroffen wird. Ich habe einen Eltern-Zustand mit 2 Kindern, die alle mit der gleichen Ansicht sind:Angular ui-router params wenn spezifische Kind-URL
.state('customer {
url: '/customer',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: null }
})
.state('customer.a' {
url: '/a',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: 'a' }
})
.state('customer.b' {
url: '/b',
templateUrl: '/customer/overview/customer.overview.html',
resolve: customerResolve,
controller: 'customer.overview.controller',
params: { type: 'b'}
})
alle Sie haben die gleiche Entschlossenheit:
var customerResolve = {
resolvedCustomers: ['$state', '$stateParams', function ($state, $stateParams) {
if ($stateParams.type == "a")
{
//resolve data
}
else if ($stateParams.status == "b") {
//resolve data
}
}]
}
Wenn ich navigieren zu .../Kunden/a Ich erreiche meine Entschlossenheit, aber ich erwarte, dass die $stateParams.type
a
ist, aber es ist null
. Das Gleiche gilt für .../customer/b.
Der Wert ist null
, weil der Parent-State auf diese Weise definiert ist. Ich kann die parent-params nicht löschen, da dies meinen Typparameter vollständig in der Auflösung löscht. Ich möchte nur den Typ-Parameter in meinem Eltern-Zustand definieren, aber keinen Wert wie 'Null' oder etwas anderes, ich möchte meine Kind-Staaten diesen Typparameter füllen. wollen <a ui-sref="customer({type: 'a'})">Customer type A</a>
Aber ich auf die URL den Typ-Parameter setzen, indem nur die Navigation:
Ich kann es ui-SRef wie so verwendet erzielen. Wenn mehr Klarheit benötigt wird, kann ich einen Plunkr bereitstellen.
Das macht tatsächlich den Job und ist was ich brauchte. Sehr geschätzt. –