programing

그 이외의 경우 StateProvider에서

javamemo 2023. 3. 16. 21:05
반응형

그 이외의 경우 StateProvider에서

angular-ui-router를 사용하여 $stateProvider에서 other 메서드를 사용하는 방법 또는 사용 방법을 알려주세요.

만은 사용할 수 없습니다.$stateProvider.

주사를 놓으셔야 합니다.$urlRouterProvider다음 코드와 유사한 코드를 만듭니다.

$urlRouterProvider.otherwise('/otherwise');

/otherwiseurl은 통상대로 상태 상에서 정의해야 합니다.

 $stateProvider
    .state("otherwise", { url : '/otherwise'...})

ksperling 설명에 대해서는 이 링크를 참조해 주십시오.

할 수 있다$stateProvidercatch all 구문을 사용합니다("*path"). 다음과 같이 목록 맨 아래에 상태 Configuration을 추가하면 됩니다.

$stateProvider.state("otherwise", {
    url: "*path",
    templateUrl: "views/error-not-found.html"
});

모든 옵션에 대해서는, https://github.com/angular-ui/ui-router/wiki/URL-Routing#regex-parameters 를 참조해 주세요.

이 옵션의 좋은 점은$urlRouterProvider.otherwise(...)로케이션 변경을 강요받지 않는 것을 의미합니다.

수동으로 $state를 other 함수에 삽입할 수도 있습니다.이 함수는 url 이외의 상태로 네비게이트 할 수 있습니다.이것은 브라우저가 주소 표시줄을 변경하지 않는다는 장점이 있기 때문에 이전 페이지로 돌아가는 처리에 도움이 됩니다.

    $urlRouterProvider.otherwise(function ($injector, $location) {
        var $state = $injector.get('$state');

        $state.go('defaultLayout.error', {
            title: "Page not found",
            message: 'Could not find a state associated with url "'+$location.$$url+'"'
        });
    });

나는 단지 이미 제공된 훌륭한 대답에 동참하고 싶을 뿐이다.의 최신 버전@uirouter/angularjs학급을 채점했다UrlRouterProvider권장되지 않는 바와 같이.그들은 이제 다음을 사용할 것을 권장한다.UrlService대신.다음과 같이 수정하면 동일한 결과를 얻을 수 있습니다.

$urlService.rules.otherwise('/defaultState');

기타 방법 : https://ui-router.github.io/ng1/docs/1.0.16/interfaces/url.urlrulesapi.html

질문한 내용이 샘플 코드의 첫 줄에 이미 답변되어 있다는 것을 깨닫는 바보 같은 순간!샘플 코드를 한 번 보세요.

       angular.module('sample', ['ui.compat'])
      .config(
        [        '$stateProvider', '$routeProvider', '$urlRouterProvider',
        function ($stateProvider,   $routeProvider,   $urlRouterProvider) {
          $urlRouterProvider
            .when('/c?id', '/contacts/:id')
            .otherwise('/'); // <-- This is what I was looking for ! 


          ....

여기 좀 보세요.

승인된 답변이 참조됩니다.angular-route에 대해 묻다ui-router승인된 답변은 "모놀리식"을 사용합니다. $routeProvider를 필요로 합니다.ngRoute모듈(필수)ui-router필요한 것은ui.router모듈)

가장 높은 평가를 받은 답변은$stateProvider대신 이렇게 말하고.state("otherwise", { url : '/otherwise'... })링크되어 있는 문서에서는 "그렇지 않은 경우"에 대한 언급을 찾을 수 없습니다.하지만, 나는 그것을 본다.$stateProvider답변에는 다음과 같이 기재되어 있습니다.

만은 사용할 수 없습니다.$stateProvider주사를 놓으셔야 합니다.$urlRouterProvider

그게 바로 내 대답이 도움이 될 수 있는 부분이야.나로서는, 그것을 사용하기에 충분했다.$urlRouterProvider바로 다음과 같습니다.

 my_module
   .config([
    , '$urlRouterProvider'
    , function(
        , $urlRouterProvider){
            //When the url is empty; i.e. what I consider to be "the default"
            //Then send the user to whatever state is served at the URL '/starting' 
            //(It could say '/default' or any other path you want)
            $urlRouterProvider
                    .when('', '/starting');
                    //...
    }]);

제 제안은 다음과 같습니다.ui-router 매뉴얼(이 특정 리비전)을 참조해 주세요.이 매뉴얼에는 유사한 용도가 기재되어 있습니다.when(...)method(함수에 대한 첫 번째 호출):

app.config(function($urlRouterProvider){
  // when there is an empty route, redirect to /index   
  $urlRouterProvider.when('', '/index');

  // You can also use regex for the match parameter
  $urlRouterProvider.when(/aspx/i, '/index');
})

언급URL : https://stackoverflow.com/questions/16793724/otherwise-on-stateprovider

반응형