programing

ui-ipsec 상태 변경에서 $state.current.name를 반환하려면 어떻게 해야 합니까?

yellowcard 2023. 3. 1. 10:18
반응형

ui-ipsec 상태 변경에서 $state.current.name를 반환하려면 어떻게 해야 합니까?

반품하고 싶습니다..state('name')각도로 위치를 바꾸면요.

내 것부터run()이 경우,$state오브젝트:

 .run(function($rootScope, Analytics, $location, $stateParams, $state) {
      console.log($state);

작업 대상

하지만 제가 이 모든 걸려고 할 때$state.current빈 객체입니다.

.run(function($rootScope, $location, $stateParams, $state) {

      console.log($state.current);

빈

설정 예:

 .config(function($stateProvider, $urlRouterProvider, AnalyticsProvider) {  
        $urlRouterProvider.otherwise('/');
        $stateProvider
        .state('home', {
            url: '/',
            views: {
              '': {
                templateUrl: 'views/main.html',
                controller: 'MainCtrl'
              },
              'navigation@home': {
                templateUrl: 'views/partials/navigation.html',
                controller: 'NavigationCtrl'
              },
              'weekly@home': {
                templateUrl: 'views/partials/weekly.html',
                controller: 'WeeklyCtrl'
              },
              'sidepanel@home': {
                templateUrl: 'views/partials/side-panel.html',
                controller: 'SidePanelCtrl'
              },
              'shoppanel@home': {
                templateUrl: 'views/partials/shop-panel.html',
                controller: 'ShopPanelCtrl'
              },
              'footer@home': {
                templateUrl: 'views/partials/footer.html',
                controller: 'FooterCtrl'
              }
            }
          })

'$state'를 들을 수 있습니다.ChangeSuccess'를 선택하고 상태를 적절하게 설정합니다.예:

$rootScope.$on('$stateChangeSuccess',
  function(event, toState, toParams, fromState, fromParams) {
    $state.current = toState;
  }
)

Sandeep 솔루션의 대안으로 다음과 같은 방법을 사용할 수도 있습니다.

angular.module('yourApp').run(['$rootScope', '$state',
    function ($rootScope, $state) {
        $rootScope.$state = $state;
    }
]);

이렇게 하면 모든 stateChange가 아닌 한 번만 설정됩니다.기본적으로 $state에 대한 참조를 어딘가에 저장하기만 하면 됩니다.이 예제를 단순화하기 위해 $rootScope를 선택했습니다.

코드에서는 다음과 같이 간단하게 참조할 수 있습니다.

<div ng-show="$state.includes('accounting.dashboard')"></div>

그리고.

<div>Current State: {{$state.current.name}}</div>

또한 일반적으로 $stateParams도 저장하기 때문에 상태에 대한 더 많은 정보를 얻을 수 있습니다(이 예에서는 제외했습니다).

시도해 볼 수도 있습니다.

.controller('yourApp', function($scope,$state) {
  $scope.state = $state;

이제 콘솔에 기록할 수 있습니다.

console.log($state);

현재 상태를 반환합니다.

또는 html 뷰에서 스코프를 다음과 같이 호출할 수 있습니다.

{{state.current.name}}

또한 현재 상태로 돌아갑니다.

컨트롤러에서 상태를 콘솔하려면 다음과 같이 콘솔해야 합니다.

console.log($state.current.name);

뷰에서 콘솔링하려면 다음 절차를 따릅니다.

컨트롤러 내:

$scope.state = $state.current.name;

템플릿 내: 다음과 같이 인쇄

{{state}}

언급URL : https://stackoverflow.com/questions/24895908/how-do-return-the-state-current-name-from-ui-router-statechange

반응형