2017-05-19 1 views
0

角度単一ページアプリケーションで作業してください。 ユーザーがCATEGORY_IDを渡したり、直接www.example.com/product/category/のような最後のパラメータなしでURLを入力しない場合、私は私と一緒にこの...UI-RouterでURL​​のパラメータをヌルにすることはできません。

.state('one-category-product-list', { 
     url: '/products/:category/:category_id', 
     views: { 
      '': { 
       templateUrl: './view/single-category-product.html', 
       controller: 'ProductsController' 
      }, 
      nav:{ 
       templateUrl: function() { 
        if (authenticate() == 'customer') { 
         return './view/template/nav-login.html'; 
        } 
        return './view/template/nav.html'; 
       } 
      }, 
      footer:{ 
       templateUrl: './view/template/footer.html' 
      } 
     } 
    }) 

問題をしようとしていますそれからパラメータcategory_id: ""をとります。これを制限する方法。

+0

だからあなたは状態の変化を防止したいですか? – Korte

+0

ええ、そうでなければ状態にリダイレクトされます。 –

答えて

0

これを試してみてください:

.state('one-category-product-list', { 
    url: '/products/:category/:category_id', 
    views: { 
     '': { 
      templateUrl: './view/single-category-product.html', 
      controller: 'ProductsController' 
     }, 
     nav: { 
      templateUrl: function() { 
       if (authenticate() == 'customer') { 
        return './view/template/nav-login.html'; 
       } 
       return './view/template/nav.html'; 
      } 
     }, 
     footer: { 
      templateUrl: './view/template/footer.html' 
     } 
    }, 
    resolve: { 
     data:($stateParams,$state, $q) => { 
      if(!$stateParams.category_id) { 
       $state.go('my-otherwise-state'); 
       return $q.reject('No state params'); 
      } 

     } 
    } 
}) 
関連する問題