Hoe $state.go()

Is mijn $stateProvider:

$stateProvider
.state('home', {
    url : '/',
    templateUrl : '/admindesktop/templates/main/',
    controller : 'AdminDesktopMainController'
}).state('company', {
    url : '/company',
    templateUrl : '/admindesktop/templates/grid/',
    controller : 'CompanyGridController'
}).state('company.detail', {
    url : '/{id:\d+}', //id is 
    templateUrl : '/admindesktop/templates/company/detail/',
    controller : 'CompanyDetailController'
});

Het werkt voor de status ‘bedrijf’ (ik gebruik ui-sref), maar deze code werkt niet (aangeroepen vanuit de status ‘bedrijf’):

$state.go('.detail', {
    id: $scope.selectedItem.id //selectedItem and id is defined
});

Ik heb officiële documenten en antwoorden van StackOverflow gelezen, maar ik heb geen oplossing gevonden. Ik kan ui-sref niet gebruiken, ik gebruik ui-grid en de nieuwe staat wordt geopend nadat ik een rij uit de tabel heb geselecteerd om te bewerken.

Wat doe ik verkeerd?


Antwoord 1, autoriteit 100%

Wat altijd zou werken, is de volledige statusdefinitie:

// instead of this
// $state.go('.detail', {
// use this
$state.go('company.detail', {
    id: $scope.selectedItem.id //selectedItem and id is defined
});

In doc er zijn deze opties gedefinieerd, maar ze zijn afhankelijk van de HUIDIGE status:

aanstring
Absolute staatsnaam of relatief staatspad. Enkele voorbeelden:

  • $state.go(‘contact.detail’) – gaat naar de status contact.detail
  • $state.go(‘^’) – gaat naar een bovenliggende staat
  • $state.go(‘^.sibling’) – gaat naar een broer of zus
  • $state.go(‘.child.grandchild’) – gaat naar de kleinkindstaat

Antwoord 2, autoriteit 9%

Mijn fout zit eigenlijk in de reguliere expressie:

.state('company.detail', {
    url : '/{id:\d*}',
    templateUrl : '/admindesktop/templates/company/detail/',
    controller : 'CompanyDetailController'
 })

{id:\d*}werkte (integer id).


Antwoord 3, autoriteit 4%

Om de huidige status te laden. Bekijk dit eens.

$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams

Referentie

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4 × 3 =

Other episodes