programing

angular ui.router state.go ('statename')이(가) 작동하지 않습니다.

muds 2023. 10. 18. 23:06
반응형

angular ui.router state.go ('statename')이(가) 작동하지 않습니다.

이는 angular.ui.router 정의입니다.

app.config([
  '$stateProvider',
  '$urlRouterProvider',
  function($stateProvider, $urlRouterProvider){
    $urlRouterProvider.otherwise('/');
      $stateProvider.state('/login',{
          url: "/",
          controller: 'Login',
          templateUrl: 'login.html'
      })
      .state('/useractivities',{
          url: "/activities",
          controller: 'activitiesController',
          templateUrl: 'useractivities.html'
      })
  }
]);

실행 중인 로그인 컨트롤러에서

$state.go('useractivities', {});

상태 '/'에서 '사용자 활동'을 확인할 수 없습니다'라는 오류가 발생합니다.

저는 다음과 같은 몇 가지 시도를 해보았습니다.

$location.url('useractivities') 

하지만 운이 없어요, 누가 뭐가 잘못되었는지 말해줄 수 있나요?

여기서 문제가 되는 것은to의 매개 변수$state.go()호출은 기존 상태 이름이어야 합니다.그리고.'activities'기존 이름이 아닙니다...그것은

먼저 다른 상태 이름을 사용할 것을 제안합니다.

$stateProvider
  // instead of this
  // .state('/',{
  // let's use this state name      
  .state('login',{          // this is a STATE Name
      url: "/",
      controller: 'Login',
      templateUrl: 'login.html'
  })
  // instead of this
  // .state('/activities',{
  // use this
  .state('activities',{      // this is a STATE Name
      url: "/activities",
      controller: 'activitiesController',
      templateUrl: 'useractivities.html'
  })

그럼 이게 될 겁니다

$state.go('activities', {}); // we use STATE Name here
$state.go('login', {});      // also state name...

자세한 내용은 여기에서 확인하십시오.

$state.go([, Params]로 [, 옵션]으로)

to

문자열 절대 상태 이름 또는 상대 상태 경로

변환할 상태의 이름 또는 상대 상태 경로입니다.경로가 ^ 또는 .로 시작하면 상대적이고, 그렇지 않으면 절대적입니다.

몇 가지 예:

$state.go('contact.detail') will go to the 'contact.detail' state
$state.go('^') will go to a parent state.
$state.go('^.sibling') will go to a sibling state.
$state.go('.child.grandchild') will go to a grandchild state.

상태 이름에 "."을 사용하려고 할 경우에도 이 문제가 발생할 수 있습니다.예.,

$stateProvider.state("Activities.Details", { url: ... })
...
$state.go("Activities.Details");

"_" 또는 예약되지 않은 다른 문자를 사용하면 잘 작동합니다.

$stateProvider.state("Activities_Details", { url: ... })
...
$state.go("Activities_Details");

언급URL : https://stackoverflow.com/questions/26651674/angular-ui-router-state-gostatename-not-working

반응형